我有5个微服务,我打算在由3个节点组成的docker集群集群上部署。
我也有一个postgresql服务运行在其中一个服务器上(不是dockerized,而是安装在服务器上),我有。我确实将网络指定为"主机"。对于所有的服务,但他们只是拒绝启动,没有日志生成。
version: '3.8'
services:
frontend-client:
image: xxx:10
container_name: frontend
restart: on-failure
deploy:
mode: replicated
replicas: 3
networks:
- "host"
ports:
- "xxxx:3000"
networks:
host:
name: host
external: true
我也尝试从没有安装postgres的服务器启动centos容器,并且能够ping和telnet postgresql端口,以及使用分配给它的主机网络。
有没有人能帮我缩小问题范围,或者看看我可能错过的可能性?docker swarm不支持host"因此,您最好的选择(和最佳实践)是将您的postgresql主机IP地址作为环境变量传递给使用它的服务。
如果你使用的是docker-compose而不是docker swarm,你可以设置network_mode为host:
version: '3.8'
services:
frontend-client:
image: xxx:10
container_name: frontend
restart: on-failure
deploy:
mode: replicated
replicas: 3
network_mode: "host"
ports:
- "xxxx:3000"
注意,我已经删除了networks
部分的撰写代码片段,并将其替换为network_mode
。