1.docker compose 概念
- 1.1服务(service):应用容器
- 1.2项目(project):docker-compose.yml
2.新建Dockerfile创建node服务
FROM node:12-alpine
ADD . /code
WORKDIR /code
RUN yarn install --production
CMD ["node", "./index.js"]
- FROM 定义基础镜像
- 将当前目录添加到code中
- 设置工作目录
- 安装所有node依赖
- 启动node服务
3.编写node服务
const Koa = require("koa");
const redis = require("redis");
const client = redis.createClient({ host: "redis", port: 6379 });
const app = new Koa();
function getCount() {
return new Promise((resolve, reject) => {
client.incr("count", (err, reply) => {
if (err) {
reject(err);
return;
}
resolve(reply);
});
});
}
app.use(async (ctx) => {
let count = 0;
try {
count = await getCount();
} catch (error) {
ctx.body = error;
}
ctx.body = "Hello World" + count;
});
app.listen(3000);
4.编写docker-compose.yml 项目
version: "3"
services:
web:
build: .
ports:
- "5000:3000"
redis:
image: "redis:alpine"
- version:指定版本
- services:内包含两个服务
- web服务
- build 指定context
- ports: 外部5000端口映射到容器内部3000
+volumes: 数据持久化,当前目录,映射到内部code中
- redis:服务
5.运行docker-compose up创建并运行整个服务启动
6.docker-compose --help查看帮助
网友评论