docker 群中的服务副本永远保持 0/1

replicas of a service in docker swarm remain 0/1 forever

是的,我已经试过了而且我没有重复的问题

我正在学习使用 docker swarm,我正在使用 docker-play
我有一个经理(node1)和 2 个工人(node2 和 node3)

$ docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS
j4maivz26wactwn9ghgosg219     node2               Ready               Active
p6cpvetwrsqu6oiqzfq2bxxsv     node3               Ready               Active
r7y5zktfore76l9z3n0keu7ae *   node1               Ready               Active              Leader

所以我创建了一个服务

 docker service create --network ingress --name mysql -e MYSQL_ROOT_PASSWORD=demodocker -e MYSQL_DATABASE=wordpressdatabase -e M
YSQL_USER=root -e MYSQL_PASSWORD=demodocker mysql

并且副本永远保持 0/1

$ docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
jub3wh8yz2cd        mysql              replicated          0/1                 mysql:latest

所以我试试:

 docker service create --network ingress --name mysql2 -e MYSQL_ROOT_PASSWORD=demodocker -e MYSQL_DATABASE=wordpressdatabase -e M
YSQL_USER=root -e MYSQL_PASSWORD=demodocker mysql:latest top

然后我尝试:

 docker service create --network ingress --replicas 1 --name mysql2 -e MYSQL_ROOT_PASSWORD=demodocker -e MYSQL_DATABASE=wordpressdatabase -e M
YSQL_USER=root -e MYSQL_PASSWORD=demodocker mysql:latest top

我试试最简单的代码行:

docker service create --network ingress --name mysql -e MYSQL_ROOT_PASSWORD=demodoceker mysql

但一切正常,我也看了这个 但我没有发现 none 参数错误

更多信息:

$ docker service ps mysql
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE        ERROR
           PORTS
j523hr6mnfqk        mysql            mysql:latest                            Running             New 13 minutes ago

.

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
wordpress           latest              ca96afcfa242        2 weeks ago         406MB
mysql               latest              e799c7f9ae9c        3 weeks ago         407MB

谢谢 ;)

不要将服务直接附加到 ingress 网络。这似乎是导致问题的原因,因为我在删除 --network ingress 时没有遇到同样的情况。我可以重现上面的内容(设置 --network ingress )并且我没有看到任何可能提供失败原因线索的日志(服务或守护进程),所以我猜这不是很好。也许在这里提出 Docker 的问题以获得更好的日志记录/错误?

在为服务发布端口时使用 ingress 网络,因此让 Docker 直接管理该网络的附件。

编辑:顺便说一句,出于 mysql 的原因(我相信创建 table 失败?但服务本身正在尝试启动)。 =14=]