docker|Docker容器的数据卷(4)

1 数据卷 1.1 思考

  • Docker容器删除后,在容器中产生的数据还在吗?
docker|Docker容器的数据卷(4)
文章图片

  • Docker容器和外部机器可以直接交换文件吗?
docker|Docker容器的数据卷(4)
文章图片

  • 容器之间能进行数据交互?
docker|Docker容器的数据卷(4)
文章图片

1.2 数据卷概念
  • 数据卷是宿主机中的一个目录或文件。
  • 当容器目录和数据卷目录绑定后,对方修改会立即同步。
  • 一个数据卷可以同时被多个容器同时挂载。
  • 一个容器也可以被挂载多个数据卷。
docker|Docker容器的数据卷(4)
文章图片

1.3 数据卷作用
  • 【docker|Docker容器的数据卷(4)】容器数据持久化。
  • 外部机器和容器间接通信。
  • 容器之间数据交换。
1.4 配置数据卷 1.4.1 命令
docker run ... -v 宿主机目录(文件):容器内目录(文件) ...

注意事项:
①目录必须是绝对路径。
②如果目录不存在,则会自动创建。
③可以挂载多个数据卷。
1.4.2 应用示例
1.4.2.1 一个容器挂载一个数据卷
docker run -id --name c1 -v /root/data:/root/data_container centos:7

docker|Docker容器的数据卷(4)
文章图片

1.4.2.2 两个容器挂载同一个数据卷
docker run -id --name c1 -v /root/data:/root/data_container centos:7 docker run -id --name c2 -v /root/data:/root/data_container centos:7

docker|Docker容器的数据卷(4)
文章图片

1.5 数据卷的分类 1.5.1 指定目录挂载
  • 命令:
# 宿主名目录(文件)的路径为绝对路径 docker run ... -v 宿主机目录(文件):容器内目录(文件) ...

  • 示例:
docker run -d -v /var/log/nginx:/var/log/nginx/ --name nginx nginx

docker|Docker容器的数据卷(4)
文章图片

1.5.2 匿名目录挂载
  • 命令:
# 可以在宿主机的/var/lib/docker/volumes目录中找到容器挂载的目录,但是目录的名称是随机的 docker run ... -v 容器内目录(文件) ...

  • 示例:
docker run -d -v /var/log/nginx/ --name nginx nginx

docker|Docker容器的数据卷(4)
文章图片

1.5.3 具名目录挂载
  • 命令:
#可以在宿主机的/var/lib/docker/volumes目录中找到容器挂载的目录,但是目录的名称是自己指定的 docker run ... -v 名称:容器内目录(文件) ...

  • 示例:
docker run -d -v nginx80:/var/log/ --name nginx nginx

docker|Docker容器的数据卷(4)
文章图片

2 数据卷容器 2.1 概念
  • 多容器进行数据交换。
    • 多个容器挂载同一个数据卷。
    • 数据卷容器。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GdOyK1E0-1649774543194)(http://img.open1024.top/lionblog/mfile/2022/4/12/20220412222805.png)]
2.2 配置数据卷容器
  • 创建启动c3数据卷容器,使用-v参数设置数据卷。
docker run -id -v /volume --name c3 centos:7

  • 创建启动c1、c2容器,使用–volumes-from参数设置数据卷。
docker run -id --volumes-from c3 --name c1 centos:7 docker run -id --volumes-from c3 --name c2 centos:7

docker|Docker容器的数据卷(4)
文章图片

资料领取 扫码下方公众号回复: 1024-22 领取学习资料
docker|Docker容器的数据卷(4)
文章图片

相关文章 初识Docker
Docker的安装
Docker进程相关命令
Docker镜像原理
Docker容器的数据卷

    推荐阅读