在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
上篇文章给大家介绍过 docker基础知识之挂载本地目录的方法 ,今天给大家介绍Docker中数据卷(volume)管理的两种方式,具体内容如下所示: 什么是数据卷数据卷( volume ):volume是存在于一个或多个容器中的特定文件或文件夹,这个目录以独立于联合文件系统的形式在宿主机中存在,并为数据的共享与持久化提供便利。 为什么要用数据卷 Docker分层文件系统存在的问题: 数据卷管理的两种方式
1、绑定挂载bind mountbind mount是将主机上的目录或文件mount到容器里。使用直观高效,易于理解。 后台运行一个使用nginx镜像的容器并将宿主机的/data目录挂载到容器的目录/usr/share/nginx/html下 [root@server1 ~]# docker run -d --name demo -v /data:/usr/share/nginx/html nginx 调到前台运行,分别查看宿主机和容器的指定的目录下的内容,是一样的。这是因为这种方式挂载和我们平时使用mount方式是一样的,原有数据隐藏,替换为宿主机的数据。 [root@server1 ~]# docker exec -it demo bash bind mount默认权限是读写rw,可以在挂载时指定只读ro。 -v选项指定的路径,如果不存在,挂载时会自动创建。 docker run -it --name vm1 \ /etc/yum.repos.d/dvd.repo:/etc/yum.repos.d/dvd.repo:ro rhel7 bash 2、docker managed volumebind mount必须指定host文件系统路径,限制了移植性。 [root@server1 ~]# docker volume create webdata #创建一个名为webdata的卷 [root@server1 ~]# docker rm -f demo #把上面创建的卷删掉 [root@server1 ~]# docker run -d --name demo -v webdata:/usr/share/nginx/html nginx #把webdata这个卷挂载到容器内的/usr/share/nginx/html目录上并运行一个容器 将创建的webdata卷挂载到容器的/usr…目录下 [root@server1 ~]# docker rm -f demo [root@server1 ~]# docker run -d --name demo -v /usr/share/nginx/html nginx 67ab13a7b24c19c53f4ce117136b9d0e4dec93c615a0192ead919d10e6c2acae
ls /var/lib/docker/volumes/2ca22fd769e4b7b6f5a02dd96fe8d47a6df5578074c0d340ced3ab33b25456ca/_data bind mount 与 docker managed volume 对比 相同点:两者都是 host 文件系统中的某个路径。 到此这篇关于Docker中的数据卷(volume)管理的两种方式的文章就介绍到这了,更多相关Docker数据卷volume内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论