1、前言
(1)容器可读写volume中的数据
(2)docker提供两种方式:bind mount,docker managed volume
(3)docker支持使用卷插件实现对卷管理
2、bind mount和docker manager volume两者比较
bind mount | docker managed volume |
可挂载任意位置 | 仅挂载至/var/lim/docker/volumes |
对原有数据进行隐藏和替换 | 将原有数据复制进卷中 |
可支持文件和目录 | 仅能为目录 |
可设置权限(rw,ro) | 仅为rw权限 |
3、bind mount
将主机中的目录或文件放入到容器中,使用 -v 选项,格式为LocalPath:ContainerPath:rw/ro
测试:将本地的默认发布目录挂载到容器中
[root@server1 html]# cat index.html
hello
运行容器
[root@server1 html]# docker run -d --name ng1 -p 80:80 -v /var/www/html/:/usr/share/nginx/html nginx
7b54a8a15cc3334208142a08d073341c50c739eea4f22a2c33f7ea6349cda46b
[root@server1 html]# curl localhost
hello
4、docker managed volume
将容器中的路径挂载到本地主机的volumes下所对应的_data下
运行容器
[root@server1 html]# docker run -d --name ng1 -p 80:80 -v /usr/share/nginx/html nginx
afe6617a05bd9a50fc1175d214bd63e20abe243d726f6bb1bf79c8fe9456aff4
命令:docker inspect ng1
进入该目录可查看到容器的发布目录
5、卷插件
以下为convoy插件实现NFS运行方式
环境:server1:172.25.69.1;server2:172.25.69.2,server1进行共享目录
(1)安装nfs-utils
(2)server1启动并设置共享目录及配置文件
路径:/etc/expors
/mnt/nfs *(rw,no_root_squash)
(3)测试nfs
server2开启
server1开启
server2进行挂载
(4)server1和server2插件安装
(5)插件使用
(6)测试使用