docker run -d --name nginx01 -p 88:80 --mount type=bind,src=/mnt/,dst=/usr/share/nginx/html nginx
//旧的方式
docker run -d --name nginx04 -p 90:80 -v /mnt/:/usr/share/nginx/html nginx
docker inspect nginx01
docker exec -it nginx01 bash
//进入目录
cd /usr/share/nginx/html
//建立index.html
echo "hello nginx" > index.html
- 将宿主机
etc
目录下挂载到容器nginx02
的opt
目录下
[root@localhost mnt]# docker run -d --name nginx02 -p 89:80 --mount type=bind,src=/etc/,dst=/opt/ nginx
1e3bbfb792b1afe15b76c3eda1d40965ef0490876831384353fa9275996c7b3b
[root@localhost mnt]# docker exec -it nginx02 bash
root@1e3bbfb792b1:/# ls /opt
Volume特点:
- 多个运行容器之间共享数据。
- 当容器停止或被移除时,该卷依然存在。
- 多个容器可以同时挂载相同的卷。
- 当明确删除卷时,卷才会被删除。
- 将容器的数据存储在远程主机或其他存储上
- 将数据从一台Docker主机迁移到另一台时,先停止容器,然后备份卷的目录(
/var/lib/docker/volumes/
)
Bind Mounts特点:
- 从主机共享配置文件到容器。默认情况下,挂载主机
/etc/resolv.conf
到每个容器,提供DNS解析。
- 在Docker主机上的开发环境和容器之间共享源代码。例如,可以将Maven target目录挂载到容器中,每次在Docker主机上构建Maven项目时,容器都可以访问构建的项目包。
- 当Docker主机的文件或目录结构保证与容器所需的绑定挂载一致时