目的
在 docker 里启动一个服务
编写服务代码
import Koa from "koa";
const app = Koa();
app.use(async (ctx) => { ctx.body = "Hello world"; });
app.listen(3000, () => { console.log("listen in 3000"); });
|
编写 Dockerfile
FROM node:11.15-alpine
RUN node -v \ && npm -v
WORKDIR /opt
COPY . /opt
CMD npm start
|
根据 Dockerfile 生成 image
$ docker build . -t node-server:1.0.0
|
创建容器 映射端口
$ docker run -d -p 3000:3000 -it --name hello-world node-server:1.0.0
|
- -it:这是两个参数,一个是 -i 表示交互式操作,一个是 -t 为终端。
- -d: 后台运行
- -v: 目录挂载
- -p: 端口隐射, 宿主机在前,容器在后
- -P: 随机映射宿主机端口
查看所有容器和状态
启动容器
$ docker start 2477af4679e2
|
访问 http://localhost:3000 查看
查看运行的容器
进入容器
$ docker exec -it 2477af4679e2 sh
|