人生到头来,就是不断放下,但永远最令人心痛的就是,来|

durtime

园龄:4年8个月粉丝:10关注:1

docker的挂载目录机制总结

经过测试,使用docker的目录挂载,有以下规律,以nginx容器做测试

规律

1、若宿主机和默认容器都不存在目录,则会创建所写的对应目录

命令:docker run --name mynginx5 -p 101:80  -v /data/nginx:/etc/nginx1 -d  nginx:latest

容器:

宿主机:

 

 2、若宿主机存在目录,且里面有文件,而容器没有目录,则会将宿主机的目录同步映射到容器

命令:docker run --name mynginx5 -p 101:80  -v /data/nginx:/etc/nginx1 -d  nginx:latest

容器:

 宿主机:

 

 3、若容器有目录,且有文件,宿主机有目录,没有文件。  会将目录覆盖,以宿主目录为主,挂载后的容器目录为空。因为宿主机的目录为空

命令:docker run --name mynginx777 -p 100:80  -v /data/nginx/html:/usr/share/nginx/html -d  nginx:latest

正常容器的目录下有页面:

 但是目录被宿主机覆盖:

 宿主机:

 

 可以运行成功:

访问页面:

 

总结

  docker的容器挂载机制,总的来说就是,没有目录就创建,以宿主机的文件目录为主,直接覆盖容器的目录(就是将目录复制到容器,包括目录所有文件)

 

注意事项

  在进行容器目录挂载的时候,若要设置配置文件的挂载,只需要挂载相对应的配置文件,且宿主机的配置文件需要有默认值;

在容器启动时,会使用挂载的配置文件进行初始化,若文件找不到或为空,会导致启动失败。若挂载整个配置文件的目录,会将容器默认的配置文件夹覆盖

从而导致启动失败,因此只需要将要修改的配置文件进行挂载映射即可。

本文作者:durtime

本文链接:https://www.cnblogs.com/durtime/p/15865894.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   durtime  阅读(2412)  评论(0编辑  收藏  举报
历史上的今天:
2021-02-06 每日日报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开