Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在单个容器中加入docker图像_Docker_Docker Compose_Dockerfile_Docker Swarm_Docker Multi Stage Build - Fatal编程技术网

在单个容器中加入docker图像

在单个容器中加入docker图像,docker,docker-compose,dockerfile,docker-swarm,docker-multi-stage-build,Docker,Docker Compose,Dockerfile,Docker Swarm,Docker Multi Stage Build,我有一个由前端、后端和mongodb数据库组成的应用程序,每个数据库都停靠在一个容器中。当我使用docker compose构建它们时,我的应用程序中的图像数量与部件数量相同(3) 有没有办法从这3个图像构建一个容器,从而生成一个图像 谢谢如果你真的愿意,我想你可以这样做。首选的方法是使用docker compose。我建议您创建一个docker-compose.yml文件,以帮助您设置: nginx->前端(可能带有服务器端渲染)->后端->mongodb docker compose背后

我有一个由前端、后端和mongodb数据库组成的应用程序,每个数据库都停靠在一个容器中。当我使用docker compose构建它们时,我的应用程序中的图像数量与部件数量相同(3)

有没有办法从这3个图像构建一个容器,从而生成一个图像


谢谢

如果你真的愿意,我想你可以这样做。首选的方法是使用docker compose。我建议您创建一个docker-compose.yml文件,以帮助您设置:


nginx->前端(可能带有服务器端渲染)->后端->mongodb

docker compose背后的思想是使用docker-compose.yml文件轻松启动并运行多容器应用程序,然后您可以使用以下文件启动应用程序:


$docker整理

您可以使用如下方式进行设置: (这是一个假设的docker-compose.yml文件,但如果您的值正确,它应该可以工作。如果您有任何问题,请告诉我:

version: '2'
services:
  frontend-container:
    image: frontend:latest
    links:
      - backend-container
    environment:
      - DEBUG=True
    restart: always
    environment:
      - BASE_HOST=http://backend-container:8000/



  backend-container:
    image: nodejs-backend:latest
    links:
      - mongodb
    environment:
      - NODE_ENV=production
      - BASE_HOST=http://django-container:8000/
    restart: always

    mongodb:
        image: mongo:latest
        container_name: "mongodb"
        environment:
          - MONGO_DATA_DIR=/data/db
          - MONGO_LOG_DIR=/dev/null
        volumes:
          - ./data/db:/data/db
        command: mongod --smallfiles --logpath=/dev/null



  nginx-container:
    image: nginx-container-custom-config:latest
    links:
      - frontend-container
    ports:
      - "80:80"

如果您希望将应用程序作为单个容器运行,则可以编写Dockerfile。它也将为您提供单个映像。

可能的副本。旁注:可以,但不要这样做。这不是Docker方式。如果我理解正确,您希望创建单个映像,这样您就不需要单独构建它们并部署三个M每次都是Ss。对吗?是的,没错。我希望你真的应该创建一个kubernetes吊舱或docker compose,每个应用都是一个应用。然后,你可以在一个命令中部署所有三个。我想他已经有了一个compose文件。但他希望他的所有应用都在一个容器中。奇怪,谢谢你的回答。我已经有了一个docker compose函数,但是当我做docker compose时,我在3个容器中有3个图像,我只需要一个容器和一个图像,这是正确的。但是这样做通常不是一个好主意。最好有一堆容器,其中每个容器都做一件事,并且做得很好。几乎就像unix命令背后的unix原理一样是的,当然。但如果没有Dockerfile和docker compose,问题将如何解决?