docker管理应用程序数据(使用Bind Mounts 方式)

  • 建立
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目录下挂载到容器nginx02opt目录下
[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主机的文件或目录结构保证与容器所需的绑定挂载一致时

你可能感兴趣的:(docker管理应用程序数据(使用Bind Mounts 方式))