标签:容器 宿主机 目录 3.2 3.1 Docker 数据 docker
文章目录
1 是什么
2 能干嘛
- 容器的
持久化
- 容器间
继承
+共享
数据
3 容器内添加数据卷(容器与宿主机之间传递数据)
3.1 直接命令添加
3.1.1命令:docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
# 没有文件夹名的话,会新建一个文件夹
docker run -it -v /myDataVolume:/dataVolumeContainer centos
3.1.2 查看数据卷是否挂载成功
docker inspect 容器ID
3.1.3 容器和宿主机之间数据共享
在上述新建的两个目录中,
宿主机增删改文件后,docker容器可以看到;
同样docker容器在该目录中进行增删改后,在宿主机中可以看到
# 牛逼,有点像共享文件夹
3.1.4 容器停止退出后,主机修改数据是否同步
容器停止退出后,主机修改数据仍然是同步的
3.1.5 带权限的命令:docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
ro = read only,只读
容器内的目录只允许主机单向修改,在容器内不能添加或修改文件
docker run -it -v /myDataVolume2:/dataVolumeContainer:ro centos
3.2 DockerFile添加
- 类比
# DockerFile含义
JavaEE Hello.java ---> Hello.class
Docker images ---> DockerFile
3.2.1 在DockerFile中使用VOLUME
指令来给镜像添加一个或多个数据卷
3.2.2 File构建
vim DockerFile
#######DockerFile#######
# volume test
FROM centos
VOLUME ["/dataVolumeContainer1", "/dataVolumeContainer2"]
CMD echo "finished, ------------success1"
CMD /bin/bash
3.2.3 build后生成镜像
docker build -f /mydocker/dockerfile2 -t mycentos .
3.2.4 run容器
docker run -it 容器ID
可以看到已经有了两个新的目录
3.2.5 查看宿主机对应的目录
docker inspect 容器ID
- 注意:新的docker版本,对应的目录可能会有所变化
3.3 备注
docker run -it -v /myDataVolume:/dataVolumeContainer --privileged=true 镜像名
4 数据卷容器(容器之间传递数据)
4.1 先启动一个父容器
然后在其中的一个目录下新增内容
4.2 启动两个子容器继承父容器
- 有点像
redis中的主从复制
4.3 删除父容器后,子容器仍然能相互共享
参考资料
标签:容器,宿主机,目录,3.2,3.1,Docker,数据,docker 来源: https://blog.csdn.net/Awt_FuDongLai/article/details/120254444
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。