Docker 知识点汇总 (下)

8、Docker文件挂载

8.1 数据卷挂载

8.1.1 数据卷

数据卷作为一个虚拟目录,是容器内目录宿主机目录之间映射的桥梁,它能够将宿主机目录映射到容器内目录,方便我们操作容器内文件,或者方便迁移容器产生的数据

PixPin_2025-05-06_13-59-09

8.1.2 数据卷命令

命令 说明 文档地址
docker volume create 创建数据卷 docker volume create
docker volume ls 查看所有数据卷 docker volume ls
docker volume rm 删除指定数据卷 docker volume rm
docker volume inspect 查看某个数据卷的详情 docker volume inspect
docker volume prune 清除数据卷 docker volume prune
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root@gzctf:/home/gzctf# docker volume -h
Flag shorthand -h has been deprecated, please use --help

Usage: docker volume COMMAND

Manage volumes

Commands:
create Create a volume
inspect Display detailed information on one or more volumes
ls List volumes
prune Remove unused local volumes
rm Remove one or more volumes

Run 'docker volume COMMAND --help' for more information on a command.
root@gzctf:/home/gzctf#

PixPin_2025-06-10_00-33-56

8.1.3 挂载方式

  • 在执行docker run命令时,使用 -v 数据卷名称:容器内目录 可以完成数据卷挂载

  • 当创建容器时,如果挂载了数据卷且数据卷不存在,会自动创建数据卷(注意保证数据卷的唯一性)

8.1.4 实例一、利用Nginx容器部署静态资源

需求:

  • 创建Nginx容器,修改nginx容器内的html目录下的index.html文件内容
  • 将静态资源部署到nginx的html目录

nginx - 官方图片 |Docker 中心 — nginx - Official Image | Docker Hub

1
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx

8.2 本地目录挂载

PixPin_2025-06-10_00-45-59

PixPin_2025-06-10_13-02-56

9 Docker网络互联

9.1 网络

默认情况下,使用容器都是以bridge方式连接到Docker的一个虚拟网桥上

PixPin_2025-06-10_13-29-30

但是容器有可能会随着容器的启动顺序导致ip发生变化,所以不能使用这种方法

9.2 自定义网络

加入自定义网络才可以通过容器名互相访问

命令 说明 文档地址
docker network create 创建网络 docker network create
docker network ls 查看所有网络 docker network ls
docker network rm 删除指定网络 docker network rm
docker network inspect 查看网络详情信息 docker network inspect
docker network prune 清除未使用的网络 docker network prune
docker network connect 使容器连接网络 docker network connect
docker network disconnect 使容器离开网络 docker network disconnect
1
docker network create hhtc
1
2
docker network connect [网络名] [容器名]
docker run --network hhtc

10 Dockerfile

10.1 Dockerfile语法基础

11、Docker-compose

12、Docker私有仓库搭建

12.1 registry与可视化web平台搭建

获取 registry 镜像

1
docker pull registry

进行持久化部署

1
2
3
4
docker run -p 5000:5000 --name registry2 \
--restart=always \
-e REGISTRY_STORAGE_DELETE_ENABLED="true" \
-d registry:2

获取可视化web平台 klausmeyer/docker-registry-browser 镜像

1
docker pull klausmeyer/docker-registry-browser

进行临时部署

如果需要持久化部署,可以添加 --restart=always 参数

1
2
3
4
5
docker run -p 5001:8080 --name registry-browser \
-e SECRET_KEY_BASE=123456 \
-e DOCKER_REGISTRY_URL=http://10.22.108.10:5000/v2 \
-e ENABLE_DELETE_IMAGES=true \
-d klausmeyer/docker-registry-browser \

搭建完成后可访问ip地址 http://10.22.108.10:5001 查看搭建完成的镜像仓库

12.2 本地镜像源设置

依旧是访问/etc/docker/daemon.json

1
2
3
4
5
6
7
8
9
{
"registry-mirror":[
"http://hub-mirror.c.163.com"
],
#上面的是之前已经配好的,关键是下面这部分
"insecure-registries":[
"10.22.108.10:5000"
]
}

12.3 私有仓库使用

上传前为了方便区分,可以先使用tag命令进行命名

1
docker tag [原镜像名称:版本号] 10.22.108.10:5000/[主目录]/[镜像名称:版本号]

之后可以使用 push 命令往仓库提交镜像

如:nginx

1
2
docker tag nginx:latest 10.22.108.10:5000/base/nginx:latest
docker push 10.22.108.10:5000/base/nginx:latest

访问平台

PixPin_2025-05-06_20-23-51

这里如果有多个版本也会继续在下面显示

PixPin_2025-05-06_20-24-58

如果要拉取镜像也和上传镜像一样

1
docker pull 10.22.108.10:5000/base/nginx:latest

13、Linux管理平台

13.1 1panel管理平台

连接: 1panel

14、其他软件部署