rinoa1023

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1. docker 容器数据卷

1.1 概念

  • 容器的持久化
  • 容器间继承
  • 共享数据

类似Redis中rdb和aof文件

 

1. 2 直接命令添加

# docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名

1.2.1 挂载是否成功

# docker inspect 容器ID

graphic

1.2.2 容器和宿主机间数据共享

graphic

1.2.3 容器停止后,主机修改后数据是否同步

graphic

1.2.4 带权限命令

# docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名

graphic

 

1. 3 Dockerfile添加

1.3.1 Dockerfile中VOLUME指令添加

# VOLUME["/dataVolumeContainer","/dataVolumeContainer2","/dataVolumeContainer3"]


说明:
出于可移植和分享的考虑,用-v 主机目录:容器目录这种方法不能够直接在Dockerfile中实现。
由于宿主机目录是依赖于特定宿主机的,并不能够保证在所有的宿主机上都存在这样的特定目录。

1.3.2 File构建

# volume test

FROM centos

VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]

CMD echo "finished,--------success1"

CMD /bin/bash

1.3.3 生成镜像

graphic

1.3.4 run容器

graphic

1.3.5 主机对应默认地址

graphic

1.4 Permission denied问题

Docker挂载主机目录Docker访问出现cannot open directory .: Permission denied

解决办法:在挂载目录后多加一个--privileged=true参数即可

 

1.5 容器间传递共享

# --volumes-from

# docker run -it --name dc02 --volumes-from dc01 zzyy/centos

graphic

容器间配置信息的传递, 数据卷的生命周期一直持续到没有容器使用它为止

posted on 2021-08-10 11:08  rinoa1023  阅读(45)  评论(0)    收藏  举报