【问题标题】:docker stack deploy generate stuck services with no replicationsdocker stack deploy 生成没有复制的卡住服务
【发布时间】:2018-05-05 11:49:54
【问题描述】:

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

docker 节点 ls 打印 =>

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

码头工人撰写 =>

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 完全陌生,可能在这里犯了一个愚蠢的错误,但我找不到太多关于如何设置如此简单的堆栈的文档。

【问题讨论】:

  • 这里不会列出运行在worker上的容器,因为你是在manager节点的docker环境中。
  • 是的,但这是否解释了为什么我的所有服务除了 redis 都没有被复制?

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    要监控,试试这个:

    journalctl -f -n10
    

    然后在单独的会话中运行 docker stack deploy 命令,看看它显示了什么

    【讨论】:

      猜你喜欢
      • 2018-09-10
      • 1970-01-01
      • 2021-05-13
      • 1970-01-01
      • 2022-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多