docker stack deploy生成卡住的服务而不进行复制

时间:2017-11-21 21:15:35

标签: docker docker-swarm docker-swarm-mode

我正在尝试将我的工作docker-compose设置部署到docker-swarm,一切似乎都没问题,除了获得复制并生成正在运行的容器的唯一服务是redis,其他3个被卡住了,从不生成任何正在运行的容器,他们甚至不会下载他们各自的图像。 我无法找到任何调试功能,所有日志都是空的,我完全无能为力。 让我告诉你我安装的当前状态。

docker node ls print =>

ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS
oapl4et92vjp6mv67h2vw8boq     boot2docker         Ready               Active
x2fal9iwj6aqt1vgobyp1smv1 *   manager1            Ready               Active              Leader
lmtuojednaiqmfmm2izl7npf0     worker1             Ready               Active

docker compose =>

version: '3'
services:
  mongo:
    image: mongo
    container_name: mongo
    restart: always
    volumes:
      - /data/db:/data/db
    deploy:
      placement:
        constraints: [node.role == manager]
    ports:
      - "27017:27017"

  redis:
    image: redis
    container_name: redis
    restart: always

  bnbkeeper:
    image: registry.example.tld/keepers:0.10
    container_name: bnbkeeper
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    depends_on:
      - mongo
      - redis
    ports:
      - "8080:8080"
    links:
      - mongo
      - redis
    environment:
      - REDIS_HOST=redis
      - MONGO_HOST=mongo

  bnbkeeper-ws:
    image: registry.example.tld/keepers:0.10
    container_name: bnbkeeper-ws
    restart: unless-stopped
    depends_on:
      - mongo
      - redis
    ports:
      - "3800:3800"
    links:
      - mongo
      - redis
    environment:
      - REDIS_HOST=redis
    command: npm run start:subscription

我服务的当前状态

ID                  NAME                 MODE                REPLICAS            IMAGE                                     PORTS
tbwfswsxx23f        stack_bnbkeeper      replicated          0/5                 registry.example.tld/keepers:0.10
khrqtx28qoia        stack_bnbkeeper-ws   replicated          0/1                 registry.example.tld/keepers:0.10
lipa8nvncpxb        stack_mongo          replicated          0/1                 mongo:latest
xtz2411htcg7        stack_redis          replicated          1/1                 redis:latest

我的redis成功服务(docker service ps stack_redis)

ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE            ERROR               PORTS
cqv0njcgsw6f        stack_redis.1       redis:latest        worker1             Running             Running 25 minutes ago

我的mongo服务不成功(docker service ps stack_mongo)

ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE        ERROR               PORTS
yipokxxiftqq        stack_mongo.1       mongo:latest                            Running             New 25 minutes ago

我对docker swarm来说是全新的,可能在这里犯了一个愚蠢的错误,但我找不到很多关于如何设置这么简单的堆栈的文档。

2 个答案:

答案 0 :(得分:0)

要进行监控,请尝试以下操作:

journalctl -f -n10

然后在单独的会话中运行docker stack deploy命令并查看其显示内容

答案 1 :(得分:0)

尝试删除端口发布并将--endpoint-mode dnsrr添加到您的服务中。