docker service 卡在 prepering 状态

本文介绍了一个使用Docker创建服务过程中遇到的问题及解决方法。当执行docker service create命令后,服务一直停留在preparing状态。经过排查,发现是由于镜像下载未完成导致。通过配置Docker镜像加速器解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

执行了 docker service create 命令之后, service 一直卡在 prepering 状态

$ docker service create --replicas 2 -p 80:80 --name nginx nginx:1.19.5-alpine
qgra9dthf4efu7o9xqpvfkqfw
overall progress: 1 out of 2 tasks
1/2: running   [==================================================>]
2/2: preparing [=================================>                 ]

使用 docker service ps 查看 service 运行状态,跟 docker service create 一样的,有一个服务一直是 prepering 状态

$ docker service ps nginx
ID             NAME      IMAGE                 NODE                    DESIRED STATE   CURRENT STATE            ERROR     PORTS
sdnkq64hfz5k   nginx.1   nginx:1.19.5-alpine   localhost.localdomain   Running         Running 10 hours ago
wdx0475co4hw   nginx.2   nginx:1.19.5-alpine   localhost.localdomain   Running         Preparing 10 hours ago

查找资料发现处于 prepering 状态的服务有可能是 worker 节点镜像没下载完的问题。因为我本地没配置镜像加速,所以有可能是外网导致镜像下载不了,配置一下 docker 镜像后问题就解决了

docker 镜像加速教程:https://www.runoob.com/docker/docker-mirror-acceleration.html