Jul*_*tte 5 docker docker-compose docker-swarm docker-network docker-stack
我有一个 docker swarm,目前只有一个节点和几个堆栈。为了能够获取请求我的一项服务的客户端的 IP 地址,我将一项服务上的端口切换为模式:主机。除非我想更新该服务,否则这工作正常。我没有更改部署顺序,因此它应该是默认的“停止优先”,但是当我使用任务时stack deploy,任务失败并显示以下消息:
no suitable node (host-mode port already in use on 1 node)
Run Code Online (Sandbox Code Playgroud)
当我将服务缩小到 0 然后使用stack deploy它时,它可以正常工作,但我不明白为什么直接更新时会出现问题。“stop-first”不应该意味着先终止旧服务(释放端口),然后启动新服务吗?如何在部署更改之前更改 yml 而不必缩放到 0?
这是有问题的 application.yml:
version: "3.7"
services:
myservice:
image: myrepo/gateway
ports:
- mode: host
protocol: tc
published: 443
target: 443
networks:
- gateway_net
networks:
gateway_net:
external: true # was created with 'docker network create -d overlay gateway_net', is used to connect gw with other services
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1103 次 |
| 最近记录: |