首页 > 解决方案 > 为什么 docker stack deploy 找不到本地镜像?

问题描述

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

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

截屏

下面是我的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:

标签: dockerdocker-composedocker-swarmdocker-registry

解决方案


因为您在 localhost 上使用注册表:

所以看看:https ://docs.docker.com/engine/swarm/stack-deploy/#set-up-a-docker-registry

  1. 在您的 swarm 上将注册表作为服务启动

  2. 检查其状态docker service ls

  3. 检查它是否正在使用curl


推荐阅读