Docker Swarm bind 数据持久化

时间:2022-04-16 04:01:09

Docker Swarm bind 数据持久化

  • bind:主要将工作节点宿主级文件或目录,同步挂载到容器中。

环境:

  • 系统:Centos 7.4 x64
  • 应用版本:Docker 18.09.0
  • 管理节点:192.168.1.79
  • 工作节点:192.168.1.78
  • 工作节点:192.168.1.77

一、两种宿主级挂载方式

管理节点:读写挂载

docker service create \
--mount type=bind,src=<HOST-PATH>,dst=<CONTAINER-PATH> \
--name myservice \
<IMAGE>

管理节点:只读挂载

docker service create \
--mount type=bind,src=<HOST-PATH>,dst=<CONTAINER-PATH>,readonly \
--name myservice \
<IMAGE>

二、创建bind 数据持久化

1、管理节点:创建服务并添加bind读写挂载

docker service create \
--mount type=bind,src=/etc,dst=/data \
--name test01 \
busybox ping www.baidu.com
# 创建服务
docker service create \
# 创建数据卷 type=bind,src=宿主目录,dst=容器目录
--mount type=bind,src=/etc,dst=/data \
# 服务名
--name test01 \
# 镜像
busybox
# 容器内执行指令
ping www.baidu.com

命令解析

docker service inspect test02
"Mounts": [
{
"Type": "bind",
"Source": "/etc",
"Target": "/data"
}
]

查看服务详细信息,截取挂载节点详细信息

2、工作节点:进入容器测试挂载目录

# 进入容器
docker exec -it e4d7e2d88cab sh
# 测试目录与/etc一致
/ # cd /data
/data # ls
....