【问题标题】:How to push docker compose to docker hub如何将 docker compose 推送到 docker hub
【发布时间】:2020-09-23 04:15:16
【问题描述】:

我的 docker-compose 文件中有多项服务,如下所示:

version: '3.7'

services:
  web:
    build: ./
    command: gunicorn --bind 0.0.0.0:5000 --workers 2 --worker-connections 5000 --timeout 6000 manage:app
    volumes:
      - ./:/usr/src/app/
      - static_volume:/usr/src/app/static_files
    expose:
      - 5000
    env_file:
      - ./.env.prod
    depends_on:
      - mongodb

  mongodb:
    image: mongo:4.4.1
    restart: unless-stopped
    command: mongod
    ports:
      - '27017:27017'
    environment:
      MONGODB_DATA_DIR: /data/db
      MONDODB_LOG_DIR: /dev/null
      MONGO_INITDB_ROOT_USERNAME: 
      MONGO_INITDB_ROOT_PASSWORD: 
    volumes:
      - mongodbdata:/data/db

  nginx:
    build: ./nginx
    volumes:
      - static_volume:/usr/src/app/static_files
    ports:
      - 5001:8000
    depends_on:
      - web


volumes:
  mongodbdata: 
  static_volume: 

我的 docker hub 帐户上有公共存储库,我想将我的应用程序中的所有图像推送到该存储库,有人可以帮忙吗?

【问题讨论】:

  • docker-compose 构建镜像时,它会有名称。只是docker tagdocker push 这些图像就像任何其他图像一样。
  • 我的mongodb和nginx怎么样,也会被推送吗? @larsks
  • @Mamen 不,只是你当前推送的那个
  • @Mamen 是的,如果要构建和运行,只需运行 Docker Compose。图片会自动拉取。
  • 请注意,您不能推送卷内容、本地文件或docker-compose.yml 文件本身;您需要删除一些 volumes: 才能使其在另一个系统上运行,并且它不会包含您当前系统的 MongoDB 数据或您挂载到容器中的静态文件的替代版本。

标签: docker docker-compose dockerfile docker-registry


【解决方案1】:

您应该为您的服务添加图像名称,包括您的 docker hub id,例如:

services:
  web:
    build: ./
    image: docker-hub-id/web:latest
    ...

现在,您可以拨打docker-compose push

docker-compose push

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 2023-04-10
    • 2018-04-04
    相关资源
    最近更新 更多