是的,我已经尝试过这个Question,而ir没有重复的问题

我正在学习使用docker swarm,我正在使用docker-play
我有一个经理(node1)和2个 worker (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

但任何工作,我也看了这个question,但我没有发现参数错误

更多信息:
$ 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原因,这样做仍然会失败,因为mysql的原因(我相信无法创建表?但是服务本身正在尝试启动)。

关于docker - docker swarm中的服务副本永远保持0/1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44359037/

10-16 00:34
查看更多