gpt4 book ai didi

docker - 如何组合两个或多个 Docker 镜像

转载 作者:行者123 更新时间:2023-12-02 07:16:21 32 4
gpt4 key购买 nike

我是 docker 的新手。我想用我的网络应用程序创建图像。我需要一些应用程序服务器,例如wlp,那么我需要一些数据库,例如postgres。

有一个 wlp 的 Docker 镜像,还有一个 postgres 的 Docker 镜像。

所以我创建了以下简单的 Dockerfile。

FROM websphere-liberty:javaee7
FROM postgres:latest

现在,也许这有点蹩脚,但是当我构建这个图像时

docker build -t wlp-db .

运行容器

docker run -it --name wlp-db-test wlp-db

并检查

docker exec -it wlp-db-test /bin/bash

只有 postgres 正在运行,而 wlp 甚至不存在。目录 /opt 为空。

我错过了什么?

最佳答案

您需要使用 docker-compose 文件。这使您绑定(bind)两个运行两个不同镜像的不同容器。一个负责您的服务器,另一个负责数据库服务。

这是与 mongodb 容器一起使用的 Nodejs 服务器容器的示例

首先,我编写docker文件来配置主容器

FROM node:latest

RUN mkdir /src

RUN npm install nodemon -g

WORKDIR /src
ADD app/package.json package.json
RUN npm install

EXPOSE 3000

CMD npm start

然后我创建 docker-compose 文件来配置两个容器并链接它们

version: '3' #docker-compose version
services: #Services are your different containers
node_server: #First Container, containing nodejs serveer
build: . #Saying that all of my source files are at the root path
volumes: #volume are for hot reload for exemple
- "./app:/src/app"
ports: #binding the host port with the machine
- "3030:3000"
links: #Linking the first service with the named mongo service (see below)
- "mongo:mongo"
mongo: #declaration of the mongodb container
image: mongo #using mongo image
ports: #port binding for mongodb is required
- "27017:27017"

我希望这有帮助。

关于docker - 如何组合两个或多个 Docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48283990/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com