- 特点:将宿主机上的任意位置的文件或目录挂载到容器中
从主机共享配置文件到容器,默认情况下, 挂载主机/etc/resolv.conf到每个容器 提供DNS解析。
在Docker主机上的开发环境和容器之间共享源代码。 例如可以将maven target 目录挂载到容器中,每次在docker上构建Maven项目时,容器都可以访问构建的项目包。
Docker主机的文件或目录结构保证与容器所需的绑定挂载一致。
- 启动和测试
将宿主机文件或者目录挂载到容器中
docker run -d -it --name=nginx2 -p 88:80 --mount type=bind,src=/opt/www,dst=/usr/share/nginx/html nginx
docker run -d -it --name=nginx2 -v /opt/www:/usr/share/nginx/html nginx
docker exec -it nginx2 bash
cd /usr/share/nginx/html/
echo '123456'>index.html
#测试
http://192.168.10.243:88/
#如果源文件或者目录没有存在 src=/opt/www 不会自动创建 会抛出一个错误
#如果挂载目标在容器非空目录 则该目录现有内容将被隐藏
- 验证和清理
docker inspect nginx2
"Mounts": [
{
"Type": "bind",
"Source": "/opt/www",
"Destination": "/usr/share/nginx/html",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
docker stop nginx2
docker rm nginx2
本文深入探讨Docker中绑定挂载的使用方法,包括如何将宿主机文件或目录挂载到容器,实现配置文件共享、源代码同步及构建项目包的访问。文章通过实例演示了如何使用docker run命令进行挂载,并介绍了挂载过程中的注意事项,如源文件不存在时的错误处理及目标目录非空时的内容隐藏。
634

被折叠的 条评论
为什么被折叠?



