【问题标题】:Deploying Docker-compose in to production [closed]将 Docker-compose 部署到生产中[关闭]
【发布时间】:2021-04-10 14:31:28
【问题描述】:

我不明白将 docker 服务部署到生产环境的最佳方式是什么?

我的撰写文件:

services:
  app:
    container_name: "barbut"
    restart: always
    build: ./app
    depends_on:
      - redis
      - mongo
    ports:
      - 3000:3000
      - 9229:9229
    links:
      - redis
      - mongo
    volumes:
    - ./app/:/usr/src/app
    - /usr/src/app/node_modules
    command: bash -c "/usr/wait-for-it.sh --timeout=0 mongo:27017 && pm2-dev start ecosystem.config.js"

  redis:
    container_name: barbutRedis
    command: ["redis-server", "--bind", "redis", "--port", "6379"]
    image: redis
    ports:
      - "6379:6379"
  redis-commander:
    container_name: redis-commander
    hostname: redis-commander
    image: rediscommander/redis-commander:latest
    restart: always
    environment:
      - REDIS_HOSTS=local:redis:6379
    ports:
      - "8081:8081"
  mongo:
    container_name: barbutMongo
    image: mongo
    ports:
    - "27017:27017"
    volumes:
    - mongoData:/data/db
  nginx:
    container_name: barbutNginx
    restart: always
    build:
      context: ./nginx
    ports:
    - "80:80"

volumes:
  mongoData:

下一步是什么?我想我需要构建这个图像,然后将它上传到 Docker 集线器,然后将这个图像拉到我的服务器并再次构建。但我不明白我该怎么做。

【问题讨论】:

  • 有很多 Compose 选项会在生产环境中造成困难(尤其是 volumes:command: 也覆盖)或者只是不必要的(container_name:hostname:links:)。一个好的开始是删除所有这些选项,让堆栈在没有它们的情况下工作。

标签: docker docker-compose


【解决方案1】:

您拥有的撰写文件本身不是图像;它是一种管理图像集合的方法。这意味着您不会将 docker-compose 文件本身上传到 dockerhub,而是将每个服务的图像上传。 “部署”一个 docker-compose 文件(通常)是将 docker-compose 文件复制到您的服务器并运行 docker-compose up -d (或创建一个自动化的服务,可能使用 systemd)。 compose 文件中的任何图像都会被自动拉取。

对于您的特定撰写文件,您在本地为nginx 服务和app 服务定义图像,在这种情况下,您有两种选择:

  1. ./nginx 和/或./app 复制到您的服务器并按原样运行撰写文件。当您调用 docker-compose 并跳过将其上传到 dockerhub 时,这将在本地构建映像
  2. 运行docker build ./app -t yourtag(如果需要,./nginx 也一样)并使用docker push yourimage:yourtag 推送到 dockerhub。在这种情况下,您需要编辑撰写文件以提取您在构建时定义的图像和标签。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    相关资源
    最近更新 更多