docker 应用数据的管理之bind mounts

Posted rdchenxi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 应用数据的管理之bind mounts相关的知识,希望对你有一定的参考价值。

创建容器使用bind mounts 挂载文件系统。宿主机文件系统会覆盖掉容器里初始数据

[[email protected] ~]# mkdir /www/htpm -pv
mkdir: 已创建目录 "/www"
mkdir: 已创建目录 "/www/htpm"

[[email protected] ~]# docker run -d --name web-7 -p 82:80 --mount type=bind,src=/www/htpm,dst=/usr/share/nginx/html nginx
814082b3448bac40f12fbce6f9f207032d76bf284d8c633a5c7b29788d6e6d85
[[email protected] ~]# ls /www/htpm/
[[email protected] ~]# docker exec -it web-7 bash
[email protected]:/# cd /usr/share/nginx/html/
[email protected]:/usr/share/nginx/html# ls
[email protected]:/usr/share/nginx/html# 
[email protected]:/usr/share/nginx/html# mkdir l
[email protected]:/usr/share/nginx/html# echo "chenxi" > index.html
[email protected]:/usr/share/nginx/html# ls
index.html  l
[email protected]:/usr/share/nginx/html# exit
exit

[[email protected] ~]# ls /www/htpm/
index.html  l

  

 技术图片

使用另一种方式挂载

[[email protected] ~]# docker run -d --name web-c -p 91:80  -v /www:/opt nginx
9eb50928c53e83b9804862b6441d22fc8a27a4963bd025cd8af41e3922e8e704
[[email protected] ~]# ls /www/
htpm
[[email protected] ~]# docker run 
centos         centos:latest  nginx          nginx:latest   nginx:web4     
[[email protected] ~]# docker exec -it web-c bash
[email protected]:/# ls /opt/
htpm
[email protected]:/# ls /opt/htpm/
index.html  l
[email protected]:/# 

volume 与bind mounts 的区别

 volume 特点

运行多个容器之间共享数据

当容器被移除时,该卷依旧存在

多容器可以同时挂载相同的卷

当明确删除时卷才会被删除

将容器数据存储在远程数据或其他主机上

将数据从一台docker主机迁移到另一台是,先停止容器,然后备份卷的目录

bind mounts的特点

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

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

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

 

以上是关于docker 应用数据的管理之bind mounts的主要内容,如果未能解决你的问题,请参考以下文章

DockerDocker数据卷模式(bind mount与docker managed volume)数据卷插件convoy之NDF部署使用

Data Volume 之 bind mount - 每天5分钟玩转 Docker 容器技术(39)

Data Volume 之 bind mount - 每天5分钟玩转 Docker 容器技术(39)

docker数据存储方式(bind--mount)

Docker 数据管理--监听主机目录

docker+ bind mount 部署复杂flask应用