docker数据卷

docker数据卷

数据卷用于完成容器内数据的持久化
容器中对应路径的文件有修改会实时同步到宿主机
数据卷可在容器之间共享数据
数据卷的更改不会包含在镜像的更新中
数据卷的生命周期一直持续到没有容器使用它为止

  1. 直接使用命令挂载 -v
# 将容器内的/home文件夹映射到本机/home/test/docker
docker run -it --privileged=true -v /home/test/docker:/home centos /bin/bash	
# 在宿主机上修改/home/test/docker目录下的文件 容器内的/home下的对应文件也会改变 反之亦然
# --privileged=true 建议加上
  1. 具名挂载和匿名挂载

    1. 匿名挂载:不指定宿主机映射路径

      docker run -it -v /home centos /bin/bash	
      docker volume ls		# 查看当前所有镜像的挂载
      
    2. 具名挂载

      docker run -it -v v1:/home centos /bin/bash	
      docker volume ls	
      docker volume inspect v1	# 查看该挂载的具体路径
      
    3. 区分具名和匿名

      -v 容器内路径			# 匿名挂载
      -v 挂载名:容器内路径		# 具名挂载
      -v 宿主机路径:容器内路径	# 指定路径挂载
      
    4. ro和rw区别

      # ro权限只能通过宿主机来改变文件内容,容器内无法改变
      # rw则宿主机和容器内部均可改变
      -v 容器内路径:ro
      -v 容器内路径:rw
      eg: docker run -it --privileged=true -v /home/test/docker:/home centos:rw /bin/bash	
      
    5. 查看具体挂载信息

      docker inspect 容器id		# 查看 Mounts 字段
      
    6. 继承挂载信息

      --volumes-from 父类容器名/容器id
      eg: docker run -it --privileged=true --volumes-from 父类容器名/容器id /bin/bash	
      
  2. Dockerfile

    1. 创建一个dockerfile文件
      # 指令都需要大写  每一个命令都是镜像中的一层
      FROM centos
      
      VOLUME ["volume01", "volume02"]	# 生成挂载数据卷的目录
      
      CMD echo "-----------and-----------"
      CMD /bin/bash`
      
    2. 构建dockerfile
      docker build -f dockerfile -t 镜像名称:版本号 .
      
    3. 运行镜像
    4. 查看镜像的挂载映射路径
      docker inspect 容器id
      
  3. 数据卷容器

    1. 同步两个容器之间的数据
      # 当前容器会与父容器的数据卷进行同步
      # 即使父容器被停掉或者删除后 其他已经同步的数据不会消失
      # 数据卷容器的生命周期一直持续到没有容器使用为止
      --volumes-from 父容器		
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值