- 特点:将宿主机上的任意位置的文件或目录挂载到容器中
从主机共享配置文件到容器,默认情况下, 挂载主机/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