企业入门实战- - docker之docker数据卷管理、convoy卷插件的使用
一.Docker数据卷
docker提供了两种卷:
bind mount
docker managed volume
1.Docker数据卷管理
首先down docker-compose
bind mount:
是将主机上的目录或文件mount到容器里
使用 -v 选项指定路径,格式 :
指定真实主机/data目录挂载到容器中/usr/share/nginx/html
docker run -d --name demo -v /data:/usr/share/nginx/html nginx
echo www.westos.org > /data/index.html ##挂载成功后,编写默认发布文件给容器中nginx
进入demo中查看文件是否挂载并写入成功
docker exec -it demo bash
docker inspect demo
访问测试:
curl 172.17.0.2
docker managed volume:
docker volume Is 查看逻辑卷
docker volume prune 清除多余的逻辑卷
docker volume create webdata 创建逻辑卷
docker run-d-name demo-v webdata:/usr/share/nginx/html nginx 捋新建的逻辑卷挂载
cd/var/lib/docker/volumes/
Is
挂载文件
docker run-it--rm-v/etc/yum.repos.d/dvd.repo:/etc/yum.repos.d/dvd.repo:ro rhel7 bash 挂载文
件只读
不指定挂载目录
docker run -d --name demo -v /usr/share/nginx/html nginx
docker inspect demo
cd /var/lib/docker/volumes/437df2961c02f20aca823235dbd85f49442cb1fbd67abb5f13697c03c891fbba/_data
2.卷插件–convoy结合NFS
需要两台装docker的虚拟机
server1
yum install nfs-utils-y 安装共享文件系统
创建共享目录
mkdir /mnt/nfs
vim /etc/exports
/mnt/nfs *(rw,no_root_squash)
chmod 777 /mnt/nfs/ 给权限
systemctl start nfs 启动服务
showmount -e
server2
yum install nfs-utils -y 安装共享文件系统
将server1的文件目录挂载到server2上
mkdir /mnt/nfs
mount 172.25.5.1:/mnt/nfs/ /mnt/nfs 将server1的/mnt/nfs 挂载到server2的/mnt/nfs上
df 查看是否挂载成功
server1
tar zxf convoy.tar.gz 解压插件
cd convoy/
mv convoy* /usr/local/bin/ 将convoy的二进制文件移动到系统的环境变量里
convoy daemon --drivers vfs --driver-opts vfs.path=/mnt/nfs &
驱动
为docker引擎指定convoy的sock的文件到/etc/docker/plugins/convoy.spec
mkdir -p /etc/docker/plugins/
echo "unix:///var/run/convoy/convoy.sock" > /etc/docker/plugins/convoy.spec
convoy create vol1 创建一个逻辑卷
convoy list 查看信息
server2的操作与server1相同
tar zxf convoy.tar.gz
cd convoy/
mv convoy* /usr/local/bin/
convoy daemon --drivers vfs --driver-opts vfs.path=/mnt/nfs &
ls /mnt/nfs/
server1上拉起容器同步数据到server2
docker run -d --name demo -v vol1:/usr/share/nginx/html nginx
docker ps
cd /mnt/nfs/vol1/
echo www.westos.org > index.html
server2
cd /mnt/nfs/vol1/
ls
cat index.html
删除convoy
server2
ps ax 查看进程并杀掉
删除逻辑卷vol1
docker volume rm vol1
cd /etc/docker/plugins/
ls
convoy.spec
rm -fr *
cd /var/lib/docker/
cd volumes/
rm -fr metadata.db