【问题标题】:Receiving pull access denied error while trying to run docker-compose.yml file尝试运行 docker-compose.yml 文件时收到 pull access denied 错误
【发布时间】:2017-11-03 20:47:29
【问题描述】:

使用 node.js 和 docker 构建基于微服务的应用程序。我创建了我的 docker-compose.yml 文件,但是当我尝试运行命令“docker-compose up -d”时,我不断收到以下错误消息:“错误:rabbbitmq 的拉取访问被拒绝,存储库不存在或可能需要'docker login'”。这是我的 docker-compose.yml 文件的示例:

version: '2'
services:
  myservice1:
    container_name: “myapp_myservice1”
    build:
      context: ../../MyService1
      dockerfile: dev.Dockerfile
    command: npm start
    volumes:
      - ../../MyService1:/usr/src/app/
    ports:
      - "3000:3000"
    depends_on:
      - mongo
      - rabbitmq
      - nginx
  myservice2:
    container_name: “myapp_myservice2”
    build:
      context: ../../MyService2
      dockerfile: dev.Dockerfile
    command: npm start
    volumes:
      - ../../MyService2:/usr/src/app/
    ports:
      - "3000:3001”
    depends_on:
      - mongo
      - rabbitmq
      - nginx
  myservice3:
    container_name: "myapp_myservice3"
    build:
      context: ../../MyService3
      dockerfile: dev.Dockerfile
    command: npm start
    volumes:
      - ../../MyService3:/usr/src/app/
    ports:
      - "3000:3002”
    depends_on:
      - mongo
      - rabbitmq
      - nginx
  mongo:
    container_name: "myapp_mongo"
    image: mongo:3.5.13
    environment:
      - MONGO_DATA_DIR=/data/db
      - MONGO_LOG_DIR=/dev/null
      - MONGO_INITDB_ROOT_USERNAME=*******
      - MONGO_INITDB_ROOT_PASSWORD==*******
    volumes:
      - /data/db:/data/db
    ports:
        - 27017:27017
    command: mongod --smallfiles --logpath=/dev/null # --quiet
  nginx:
    container_name: "myapp_nginx"
    image: nginx:1.13.6
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - ./nginx/conf:/etc/nginx/conf.d
    command: /bin/bash -c "envsubst < /etc/nginx/conf.d/mysite.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
  rabbitmq:
    container_name: "myapp_rabbitmq"
    image: rabbbitmq:latest
    environment:
      - RABBITMQ_ERLANG_COOKIE='secret_cookie'
    hostname: fourthreefortymq
    ports:
      - "15672:15672"
      - "5672:5672"
    tty: true
    volumes:
      - ./rabbitmq/lib:/var/lib/rabbitmq
      - ./rabbitmq/log:/var/log/rabbitmq
      - ./rabbitmq/conf:/etc/rabbitmq/

这是我的 dev.Dockerfile 的示例:

FROM node:latest(我注释掉了这个文件的其余部分)

它首先尝试运行 rabbitmq,然后失败并显示错误消息。我什至尝试为 docker hub 创建一个新帐户并登录,然后运行命令,但我仍然收到相同的错误消息。此外,我从终端屏幕运行命令“docker inspect rabbitmq”,我收到了一个 json arry 响应。我认为这意味着它存在并且可以访问。有人可以查看下面的代码并让我知道我缺少什么吗?

【问题讨论】:

  • docker-compose.yml 文件的代码示例在一些地方有智能引号。您能否确认您的实际 docker-compose.yml 文件中没有智能引号?

标签: docker rabbitmq docker-compose dockerfile


【解决方案1】:

rabbitmq 镜像名称中有一个额外的“b”,它应该是 rabbitmq:latest 而不是 rabbbitmq:latest

【讨论】:

  • 好眼光!这绝对看起来像是错误的根本原因。
  • 我在运行docker run helloworld 时遇到了同样的错误(即缺少-)。
【解决方案2】:

docker-compose build 将基于 docker-compose.yml 为您在本地构建所有内容,而无需从远程仓库中拉取。

运行上述命令后,你可以运行docker-compose up -d在构建好的镜像上运行一个容器。

这只是第一次,在本地更改任何内容然后需要重新创建容器和图像后,您可以运行 docker-compose up -d --build

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-15
    • 2012-05-03
    • 1970-01-01
    • 2018-03-07
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多