dcoker 提供三种不同的方式将数据从宿主机挂载到容器中:volumes,bind mounts, tmpfs。
volumes: Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)
bind mounts: 存储在宿主机系统的任意位置,主要是将宿主机上的某个文件目录挂在到docker下供数据存储。
tmpfs:挂载存储在宿主机系统的内存中,不会写入宿主机的文件系统。

管理卷:
docker volume create tomcat8081
docker volume inspect tomcat8081

用卷创建一个容器(系统例子):
docker run -itd --name=ng01 -p 91:80 --mount src=ng01,dst=/usr/share/nginx/html nginx

或者:

docker run -itd --name=ng01 -p 89:80 -v ng01:/usr/share/nginx/html nginx

如果对应到自己的容器中,就要根据镜像查找对应的默认安装目录,并设置要保存的对应目录

比如tomcat的默认安装路径为

/usr/local/tomcat
那么,我们创建容器的语句为
docker run -itd --name=tomcat8081 -p 8081:8080 --mount src=tomcat8081,dst=/usr/local/tomcat/webapps tomcat

有时候我们可能会用到挂载多个数据卷的情况,使用命令:

docker run -itd --name=tomcat8082 -p 8082:8080 --mount src=volume_Name1,dst=/usr/local/tomcat/webapps --mount src=volume_Name2,dst=/usr/local/tomcat/conf tomcat

#进入container控制台命令

docker exec -it tomcat8082 /bin/bash  #tomcat8082为容器名称

#不指定卷会自动创建
docker run -itd --name=ng01 -p 90:80 --mount src=,dst=/usr/share/nginx/html nginx

创建的卷所在位置:

/var/lib/docker/volumes/

删除卷:
docker volume rm ng01

删除容器:
docker container stop ng01
docker container rm ng01

bind形式绑定
docker run -itd --name=ng01 --mount type=bind,src=/root/app,dst=/usr/share/nginx/html nginx

或者

docker run -itd --name=ng -p 88:80 -v /root/app:/usr/share/nginx/html nginx

查看容器详情

docker inspect ng01

#如果源文件、源目录不存在,不会自动创建,会报错。
#挂载目标在容器中非空目录,则该目录现有内容将被隐藏

volume特点:

1、多个运行容器之间的共享数据,多个容器可以同时挂载相同的卷。

2、当容器停止或被移除时,该卷依然存在

3、当明确删除卷时,卷才会被删除

4、将容器的数据存储在远程主机或其他存储

5、将数据从一台docker主机迁移到另一台时,先停止容器,然后备份卷的目录(/var/lib/docker/volumes

)

bind mount 特点:

1、从主机共享配置文件到容器,默认情况下,挂载主机/etc/resolv.conf到每个容器,提供dns解析

2、在docker主机上的开发环境和容器之间共享源代码。 例如,将maven target目录挂载到容器中, 每次在docker主机上构建maven项目时,容器都可以访问构建的项目包。

3、当docker主机的文件或目录结构保证与容器所需的绑定挂载一致时

最新文章

  1. 组合模式/composite模式/对象结构型模式
  2. 鸟哥的linux私房菜学习笔记 __ 命令与文件的搜寻
  3. kuaisupaixu
  4. source命令
  5. [置顶] Array ArrayList LinkList的区别剖析
  6. 原型模式 - OK
  7. 201521123102 《Java程序设计》第12周学习总结
  8. python的u'字符串"(字符编码):字符串前有u,表示字符串以unicode格式存储
  9. JavaWeb 乱码问题终极解决方案!
  10. LinuxMint 下 B站 番 blv 缓存 转 mp4
  11. ssl证书安装到iis服务器
  12. Vue 路由及路由默认跳转
  13. 字符串的排列(python)
  14. angular组件之间的通讯
  15. 矩阵快速幂(以HDU1757为例)
  16. Thinkphp5笔记三:创建基类
  17. ubuntu16.04下安装文献管理工具mendelay
  18. hmm 软件的使用
  19. 奇怪的bug:javascript不执行
  20. 运行 3ds Max 时出现的性能问题

热门文章

  1. 网络对抗技术 20165220 Exp7 网络欺诈防范
  2. 后盾网lavarel视频项目---2、phpstorm显示类中的方法快捷键
  3. ffmpeg摄像头推流
  4. leetcode-easy-array-122 best time to buy and sell stocks II
  5. ES6数组的拓展
  6. eclipse下 hibernate逆向数据库操作示例!!
  7. 你知道 Git 是如何做版本控制的吗?(转)
  8. 为终端配置proxy
  9. 判断Ctrl Shift Alt 键当前是否被按下
  10. Redis启动命令