Dockerfile


用来构建和使用 image

// yarn 安装和 copy . 要分开

FROM node:8.4
COPY . /app
WORKDIR /app
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 3000
CMD node demos/01.js

  • FROM node:8.4:该 image 文件继承官方的 node image,冒号表示标签,这里标签是8.4,即8.4版本的 node
  • COPY . /app:将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录
  • WORKDIR /app:指定接下来的工作路径为/app
  • RUN npm install:在/app目录下,运行npm install命令安装依赖。注意,安装后所有的依赖,都将打包进入 image 文件
  • EXPOSE 3000:将容器 3000 端口暴露出来, 允许外部连接这个端口
  • CMD 表示容器启动后自动执行,docker container run命令就不能附加命令了(比如前面的/bin/bash),否则它会覆盖CMD命令



$ docker container run -p 8000:3000 -it koa-demo:0.0.1 /bin/bash

  • -p 参数:容器的 3000 端口映射到本机的 8000 端口。
  • -it 参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。
  • koa-demo:0.0.1:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。
  • /bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。