我是码头工人的新手。
我想用我的网络应用程序创建图像。我需要一些应用程序服务器,例如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(使用前将#替换为@)