我正在尝试在 Docker Swarm 中创建一个 Nginx 服务,但我无法连接到它。
docker swarm init
docker service create -p 80:80 nginx:1.23.3
结果:
$ docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
8ka52nhkbkl2 epic_euclid replicated 1/1 nginx:1.23.3 *:80->80/tcp
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
78dd33736e04 nginx:1.23.3 "/docker-entrypoint.…" 53 seconds ago Up 51 seconds 80/tcp epic_euclid.1.9b1c5cansiemzi3zoiom85zkg
如果我在没有服务的情况下使用容器,它工作正常:
docker run --rm -p 80:80 nginx:1.23.3
我也尝试创建新图像和 EXPOSE 80 端口但没有成功:
FROM nginx:1.23.3
EXPOSE 80
我已经尝试在 Windows 和 Linux 上执行此操作。同样的结果。
$ docker version
Client: Docker Engine - Community
Cloud integration: v1.0.31
Version: 20.10.23
API version: 1.41
Go version: go1.18.10
Git commit: 7155243
Built: Thu Jan 19 17:34:13 2023
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Desktop
Engine:
Version: 20.10.23
API version: 1.41 (minimum version 1.12)
Go version: go1.18.10
Git commit: 6051f14
Built: Thu Jan 19 17:32:04 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.18
GitCommit: 2456e983eb9e37e47538f59ea18f2043c9a73640
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
我重新启动了 Swarm,它解决了问题:
docker swarm init --default-addr-pool 192.168.100.0/24 --default-addr-pool-mask-length 26 --data-path-port=7789
来源:https://forums.docker.com/t/docker-swarm-service-unreachable-from-manager-node/133755/16