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

2024-04-11

我是码头工人的新手。 我想用我的网络应用程序创建图像。我需要一些应用程序服务器,例如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 文件。这使您绑定两个运行两个不同映像的不同容器。一个负责您的服务器,另一个负责数据库服务。

这是与 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"

我希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何组合两个或多个 Docker 镜像 的相关文章

随机推荐