为什么docker stack deploy无法找到本地映像?

时间:2020-10-21 09:30:33

标签: docker docker-compose docker-swarm docker-registry

有时可以正常工作,但有时docker swarm无法获取docker映像。哪个是在本地构建的,这里可能是什么问题?我使用的--with-registery-auth也不起作用。

请在下面的屏幕截图中找到,清楚地表明我的本地图像可用。

ScreenShot

下面是我的docker-compose.yml

version: "3.8"
services:
  mongodb:
    image: mongo
    environment:
      MONGO_USER: reddituser
      MONGO_PASS: redditpass
      MONGO_DB: reddit-demo
    deploy:
      placement:
        constraints:
          - node.role == manager
    ports: 
      - "27017:27017"
    networks:
      - reddit
    volumes:
      - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js
      - mongodb:/data/mongodb
  redisdb:
    image: redis
    volumes:
      - redis:/data/
    ports:
      - "6379"
    networks:
      - reddit
  app:
    image: hapi-backend
    ports: 
      - "3000:3000"
    environment:
      MONGO_HOST: mongodb
      MONGO_PORT: "27017"
      MONGO_DB: reddit-demo
      MONGO_USER: reddituser
      MONGO_PASS: redditpass
      REDIS_HOST: redisdb
      REDIS_PORT: "6379"
    networks:
      - reddit
  micro:
    image: beequeue-micro
    environment:
      MONGO_HOST: mongodb
      MONGO_PORT: "27017"
      MONGO_DB: reddit-demo
      MONGO_USER: reddituser
      MONGO_PASS: redditpass
      REDIS_HOST: redisdb
      REDIS_PORT: "6379"
    networks:
      - reddit
volumes:
  mongodb:
  redis:
networks:
  reddit:

1 个答案:

答案 0 :(得分:1)

因为您正在本地主机上使用注册表:

因此,请看一下:https://docs.docker.com/engine/swarm/stack-deploy/#set-up-a-docker-registry

  1. 将注册表作为服务启动您的群体

  2. 使用docker service ls

    检查其状态
  3. 检查它是否可以与curl

    一起使用