Docker学习笔记2【容器数据卷】

在这里插入图片描述
1.数据卷-----容器内添加

  • 直接命令添加
    容器数据卷:
    ①docker cp
    docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
    docker run -it -v /myDataVolume:/dataVolumeContainer 镜像名
docker inspect 容器ID

绑定成功【实现容器和宿主机数据共享】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
【容器中安装vim时先update一下再apt-get】
【vim保存退出:esc→:wq!】
在这里插入图片描述
已同步
在这里插入图片描述
关闭容器后在宿主机上进行数据修改也可以完全同步
②命令(带权限)
docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
【容器内目录只读】
docker run -it -v /myDataVolume:/dataVolumeContainer:ro 镜像名
在这里插入图片描述
RW为false
也就是说宿主机的数据可以同步到容器中,容器不可以修改数据,只可以查看。【cat】

  • DockerFile添加
    ①file构建在这里插入图片描述
    在这里插入图片描述
nano Dockerfile
#volume test
FROM ubuntu
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD echo "finished,-------success1"
CMD /bin/bash

②build后生成镜像------获得一个新镜像st/ubuntu

docker build -f /home/shark/mydocker/Dockerfile -t st/ubuntu .
#一定不要忘记最后的点!!!

在这里插入图片描述
在这里插入图片描述
③run容器

docker run -it st/ubuntu /bin/bash

在这里插入图片描述
宿主机对应的文件夹:
在这里插入图片描述
2.数据卷容器
①以上一步新建的镜像st/ubuntu为模板并运行dc01/dc02/dc03
已经具有容器卷:
/dataVolumeContainer1
/dataVolumeContainer2
②容器间传递共享(–volume-from)

  • 先启动一个父容器dc01
    在dataVolumeContainer2新增内容
docker run -it --name dc01 st/ubuntu
cd dataVolumeContainer2
touch dc01_add.txt
  • dc02/dc03继承自dc01
docker run -it --name dc02 --volumes-from dc01 st/ubuntu

进入容器
在这里插入图片描述
dc03同理

  • 回到dc01可以看到02/03各自添加的都能共享了
docker attach dc01

在这里插入图片描述
三个容器之间可以继承并且可以相互传递

  • 删除dc01,dc02dc03可否访问
docker rm -f dc01

在这里插入图片描述
在这里插入图片描述

  • 删除dc02后dc03可否访问
    可以
  • 新建dc04继承dc03后再删除dc03
  • 结论:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值