docker 集群中文件挂载的问题

本文探讨了在Docker集群中创建服务并进行文件挂载时遇到的问题。通过`docker service create`命令,使用`--mount`而非`-v`选项进行路径映射,并强调在挂载时需要指定`type=bind`。当在三节点集群中执行此操作,文件路径映射到特定节点的本地路径。通过负载均衡,不同请求可能会被分配到不同节点的容器,导致访问同一IP时显示的内容根据实际分配的容器内容变化。举例展示了如何改变节点上的`/tmp/index.html`文件来观察负载均衡的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假如说在一个三节点的集群上执行

 

docker service create --replicas 2 -p 80:80 --name nginx nginx:1.13.7-alpine

然后访问三个节点的任意一个ip都会看到nginx的欢迎界面。nginx的默认index.html路径在/usr/share/nginx/html/index.html

假如说现在要进行文件挂载,也就是文件路径映射。注意几个问题:

  1. docker service create 里面的文件映射用的命令是 --mount 而不是 -v什么的
  2. 如果源路径是绝对路径要加type=bind
  3. 还有一个地方要清楚,集群里面有三台服务器,那么映射到的路径是当前某个节点机器上的路径,意思就是manager节点会选择某些work节点跑某些容器,而那个容器映射的路径会对应到当前的那个node的本地路径上。具体看下面结果:

执行:

docker service create --replicas 2 -p 80:80 --name nginx --mount type=bind,src=/tmp/index.html,dst=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值