docker service 卡在 prepering 状态

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

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

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

  1. $ docker service ps nginx
  2. ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
  3. sdnkq64hfz5k nginx.1 nginx:1.19.5-alpine localhost.localdomain Running Running 10 hours ago
  4. 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

容器无故退出

问题:最近经常发现有些容器无缘无故自动退出了,不同容器都出现这种情况,使用docker container ps -a查看,发现 Exited(137)
image.png
查找资料发现 Exit(137) 可能是 docker 内存不足,导致容器被 docker kill

解决方案:加大 docker 内存,由原本的 2G 调到 8G
image.png