如何在不使用 Docker Compose 的情况下在 Docker 文件中包含两个图像?

How to have two images in a Dockerfile without using Docker Compose?

如何在 docker 文件中有两个图像并链接?

我不想使用 docker 撰写,我想要这样的东西

FROM node:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm i
COPY . /usr/src/app
EXPOSE 4000
CMD [ "npm", "start" ]

FROM mongo:latest as mongo 
WORKDIR /data
VOLUME ["/data/db"]
EXPOSE 27017

但是我不知道怎么加入图片

谢谢

我认为简单的解决方案是从 mongo 映像创建您自己的映像并手动安装节点。

一个 Dockerfile 中可以有多个 FROM :

FROM can appear multiple times within a single Dockerfile to create multiple images or use one build stage as a dependency for another. Simply make a note of the last image ID output by the commit before each new FROM instruction. Each FROM instruction clears any state created by previous instructions.

发件人:https://docs.docker.com/engine/reference/builder/#from

  • Compose 是用于定义和 运行 宁多容器 Docker 应用程序的工具。

  • Docker文件是一个文本文档,其中包含用户可以在命令行上为 assemble 图像调用的所有命令。

为节点和 mongo 创建一个图像意味着你将在容器中同时拥有它们,up 和 运行ning(更多资源,更难调试,不太稳定的容器,日志将是难以理解等)。

创建单独的图像,这样您就可以 运行 独立地使用任何图像:

$ docker 运行 -d -p 4000:4000 --name node myNode

$ docker 运行 -d -p 27017:27017 --name mongo myMongo

而且我强烈建议您使用 compose 文件,它会让您更好地控制整个环境。