如何确定我的副本没有在集群中启动的原因?

Max*_*ley 5 containers docker docker-swarm

我在管理器节点中使用了以下 docker swarm 命令来部署我的应用程序。

$ docker stack deploy --compose-file docker-stack.yml sb

这是 docker-stack.yml 文件。

version: "3"
services:

  db:
    image: postgres:9.4
    volumes:
      - db-data:/var/lib/postgresql/data
    networks:
      - backend
    deploy:
      placement:
        constraints: [node.role == manager]

  sample_blog:
    image: quay.io/repository/copley/sample_blog
    ports:
      - 3000:80
    networks:
      - frontend
    deploy:
      replicas: 2
      update_config:
        parallelism: 2
      restart_policy:
        condition: on-failure

networks:
  frontend:
  backend:

volumes:
  db-data:
Run Code Online (Sandbox Code Playgroud)

这是我运行命令时的输出:

$ docker 服务 ls

ID            NAME             MODE        REPLICAS  IMAGE
dingz17v0qor  sb_db            replicated  0/1       postgres:9.4
tq3lgqvwx627  sb_sample_blog   replicated  0/2       quay.io/repository/copley/sample_blog
Run Code Online (Sandbox Code Playgroud)

为什么我的副本没有启动?我已经等了20多分钟了。

Pom*_*pot 0

显然,这可能只是由于constraints您的撰写文件的一部分而导致的问题。您是否检查过您的 Swarm 配置良好并且有一个节点符合您的约束条件?我最近遇到了这个问题。