docker将数据从宿主机挂载到容器的方式(一)

docker使用教程相关系列 目录


目录

volumes介绍

查看数据卷

创建数据卷

 查看数据卷详情

用数据卷创建容器

小结


volumes介绍

数据卷的作用是:当容器挂掉时,数据卷实际目录是放在宿主机上的,数据不会丢失,再启一个新的容器,也不影响数据,只要数据卷还在

查看数据卷

docker volume ls

0

创建数据卷

docker volume create nginx_vol

0

 查看数据卷详情

docker volume inspect nginx_vol

0

用数据卷创建容器

docker run -d --name=nginx03 -p 88:80 --mount src=nginx_vol,dst=/usr/share/nginx/html/ nginx

使用 --mount 这个问题报错:

unknown flag: --mount

解决方案:使用-v 或者使用17.06以上的版本

docker run -d --name=nginx03 -p 88:80 -v nginx_vol:/usr/share/nginx/html/ nginx

0

0

0

看下容器nginx03宿主的目录

ls /var/lib/docker/volumes/nginx_vol/_data

0

修改/var/lib/docker/volumes/nginx_vol/_data目录下的index.html文件

0

0

0

 证明/var/lib/docker/volumes/nginx_vol/_data目录下的文件与nginx03容器是共享的

docker inspect nginx03 //查看详情,获取内部IP

0

先暂停nginx03容器,创建nginx04容器

0

 发现数据还是没丢失

0

有同学会问,那如果把这两个容器删除了,数据卷的文件还在吗?

答案是在的,因为数据卷是独立于容器之外的

0

 注:如果把数据卷删除了,数据文件就不存在了

0

小结

volume特点:

  1. 多个运行容器之间共享数据
  2. 当容器停止或被移除时,该数据卷还存在
  3. 多个容器可以同时挂载相同的卷
  4. 当删除卷时,卷下的数据才会被删除
  5. 将容器的数据存储在远程主机或者其他存储上
  6. 将数据从一台docker主机迁移到另一台时,先停止容器,然后备份卷的目录(/var/lib/docker/volumes/)

猜你喜欢

转载自blog.csdn.net/shi_hong_fei_hei/article/details/114296977