我是 docker 的新手。我想用我的 Web 应用程序创建一个图像。我需要一些应用程序服务器,例如 wlp,然后我需要一些数据库,例如 postgres。
wlp 有一个 Docker 映像,postgres 有一个 Docker 映像。
所以我创建了以下简单的 Dockerfile。
FROM websphere-liberty:javaee7
FROM postgres:latest
Run Code Online (Sandbox Code Playgroud)
现在,也许它很蹩脚,但是当我构建这个图像时
docker build -t wlp-db .
Run Code Online (Sandbox Code Playgroud)
运行容器
docker run -it --name wlp-db-test wlp-db
Run Code Online (Sandbox Code Playgroud)
并检查它
docker exec -it wlp-db-test /bin/bash
Run Code Online (Sandbox Code Playgroud)
只有 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
Run Code Online (Sandbox Code Playgroud)
然后我创建 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"
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助。
| 归档时间: |
|
| 查看次数: |
7413 次 |
| 最近记录: |