【问题标题】:Why docker stack deploy can't find local image?为什么 docker stack deploy 找不到本地镜像?
【发布时间】:2020-10-21 09:30:33
【问题描述】:

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

请看下面的截图,上面清楚地说明了我的本地图片可用。

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

【问题讨论】:

  • 您是否将注册表设置为您的 swarm 上的服务?
  • 不,我没有,那么它也应该在没有注册表的情况下工作??

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


【解决方案1】:

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

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

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

  2. 通过docker service ls检查其状态

  3. 检查它是否与curl一起工作

【讨论】:

  • 好的,但是为什么有时它会在没有注册表的情况下工作?
  • 或许可以使用互联网公开的docker hub上的镜像
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-27
  • 1970-01-01
  • 2022-06-29
  • 1970-01-01
  • 2015-09-22
相关资源
最近更新 更多