写点什么

“程”风破浪的开发者|我的 Docker 学习小妙招

作者:
  • 2022-10-23
    河南
  • 本文字数:1120 字

    阅读完需:约 4 分钟

“程”风破浪的开发者|我的Docker学习小妙招

前言

  本文是 Docker 容器的数据卷使用的简单教程,介绍了什么是数据卷、数据卷概念、以及如何使用数据卷等。


  部分水印照片是我自己博客的水印。

1、数据卷概念

  数据卷简单来讲就是一个目录,它是由 Docker daemon 挂载到容器中的,因此数据卷并不属于联合文件系统,也就是说数据卷里面的内容不会因为容器的删除而丢失。Docker 启动后,容器内的文件和宿主机是隔离的,如果不使用 docker commit 操作提交容器为镜像把数据保存下来,数据就会因为容器的删除而丢失。


  • 数据卷是宿主机中的一个目录或文件

  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步

  • 一个数据卷可以被多个容器同时挂载

  • 一个容器也可以被挂载多个数据卷


2、数据卷作用

  docker默认容器关闭后数据就没了,如果不通过 docker commit 生成新的进行数据就会丢失。数据卷的作用就是将 docker 容器运行产生的数据持久化。


  • 容器数据持久化

  • 外部机器和容器间接通信

  • 容器之间数据交换

3、配置数据卷

创建启动容器时,使用 –v 参数 设置数据卷


docker run ... –v 宿主机目录(文件):容器内目录(文件) ... #docker run -it --name=c1 -v /root/data:/root/data_container couchbase/centos7-systemd /bin/bash
复制代码


容器的目录 data_container



本机的目录 data



1)此时在宿主机(本机)data 目录下创建文件


touch test.txt
复制代码


!](https://img-blog.csdnimg.cn/db5f709d77d249fea191f0bf2f0135ac.png)


2)在容器查看 data_container,发现同步过来了。


![]](https://img-blog.csdnimg.cn/0d5b273b960b43a4bb554e0aa16fdc5b.png)


注意事项:


  • 目录必须是绝对路径

  • 如果目录不存在,会自动创建

  • 可以挂载多个数据卷

4、多容器进行数据交换

  • 多个容器挂载同一个数据卷

  • 数据卷容器

5、数据卷容器


1)创建启动 c3 数据卷容器,使用 –v 参数 设置数据卷


docker run –it --name=c3 –v /volume centos:7 /bin/bash  
复制代码


2)创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷


docker run –it --name=c1 --volumes-from c3 centos:7 /bin/bash docker run –it --name=c2 --volumes-from c3 centos:7 /bin/bash
复制代码

6、数据卷小结

1)数据卷概念


  • 宿主机的一个目录或文件


2)数据卷作用


  • 容器数据持久化

  • 客户端和容器数据交换

  • 容器间数据交换


3)数据卷容器


  • 创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )

  • 通过简单方式实现数据卷配置

总结

  数据卷可以在容器之间共享和重用;对数据卷的修改会立马生效;对数据卷的更新,不会影响到镜像;数据卷默认会一直存在,即使容器被删除。数据卷简单来讲就是一个目录,它是由 Docker daemon 挂载到容器中的,因此数据卷并不属于联合文件系统。最后,送上一句自己喜欢的话:“没有风浪,便没有勇敢的弄潮儿;没有荆棘,也没有不屈的开拓者。”。

发布于: 刚刚阅读数: 4
用户头像

关注

在校大三学生一枚 2022-08-02 加入

喜欢学习编程,擅长技术栈JAVA

评论

发布
暂无评论
“程”风破浪的开发者|我的Docker学习小妙招_学习方法_斯_InfoQ写作社区