Docker 基础 ( 八 ) 容器数据卷

什么是容器数据卷

  • 将应用和环境打包成一个镜像!
  • 数据?如果数据都在容器中,那么我们容器删除,数据就会丢失!需求:数据可以持久化
  • MySQL,容器删除了,删库跑路!需求:MySQL数据可以存储在本地!
  • 容器之间可以有一个数据共享的技术!Docker容器中产生的数据,同步到本地!
  • 通过目录的挂载,将我们容器内的目录,挂载到Linux上面!

总结一句话:容器的持久化和同步操作!容器间也是可以数据共享的!

使用数据卷

  • 方式一 :直接使用命令挂载 -v
    docker run -it -v 主机目录:容器内目录 -p 主机端口:容器内端口
    -v, // volume list Bind mount a volume
# /home/ceshi:主机home目录下的ceshi文件夹 映射:centos容器中的/home
[root@VM-0-6-centos ~]# docker run -it -v /home/ceshi:/home --name centos02 centos /bin/bash
#这时候主机的/home/ceshi文件夹就和容器的/home文件夹关联了,二者可以实现文件或数据同步了

[root@675da0dfb544 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@675da0dfb544 /]# cd home
[root@675da0dfb544 home]# touch aa.txt         // 在home下建aa.txt文件
[root@675da0dfb544 home]# ls
aa.txt
[root@675da0dfb544 home]# exit       //  退出容器
exit
[root@VM-0-6-centos ~]# cd /home   //进入主机目录,查看文件
[root@VM-0-6-centos home]# ls
ceshi  www
[root@VM-0-6-centos home]# cd ceshi
[root@VM-0-6-centos ceshi]# ls
aa.txt      // 文件同步显示
  • 通过 docker inspect 容器id 查看容器信息
[root@VM-0-6-centos ceshi]# docker inspect 675da0dfb544
……
"Mounts": [
            {
                "Type": "bind",
                "Source": "/home/ceshi",     // Linux 目录
                "Destination": "/home",    // 容器目录
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

测试文件的同步

再来测试!

  1. 停止容器
  2. 宿主机修改文件
  3. 启动容器
  4. 容器内的数据依旧是同步的

好处:我们以后修改只需要在本地修改即可,容器内会自动同步!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容