参考资料
Docker 入门教程-阮一峰
官方文档
1、在项目目录下创建一个 .dockerignore
文件。
// .dockerignore
.git
node_modules
npm-debug.log
上面代码表示,这三个路径要排除,不要打包进入 image 文件。
2、在项目目录下创建一个 Dockerfile
文件,编辑自己的操作。
// Dockerfile
FROM node:12.12.0
WORKDIR /usr/src/app
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "start"]
- FROM node:12.12.0:该 image 文件继承官方的 node image,冒号表示标签,这里标签是12.12.0,即12.12.0版本的 node。
- WORKDIR 指定容器中的工作目录是/usr/src/app
- COPY 复制当前目录下的到容器的工作目录下
- RUN 在工作目录下执行命令
- CMD 在宿主机执行命令
3、创建 image 文件
在命令行执行
docker build image -t [name] [path]
// eg
$ docker image build -t jianshu .
-t 用来指定 image 的名字
name 自定义的 image 名字
path Dockerfile 文件所在的路径
// 查看 image 列表
docker images
// 删除 image,填写 image ID
docker rmi [IMAGE ID] // docker rmi 50a0b6e611eb
4、生成容器 (container)
docker container run --publish [host port:container port] --detach --name [name] name
// eg
$ docker container run --publish 8000:8080 --detach --name js jianshu
–publish 要求Docker将主机端口8000上传入的流量转发到容器的端口8080(容器有自己的端口集,如果我们想要通过端口访问,需要用这种方式转发流量。否则,作为默认的安全状态,防火墙规则将阻止所有网络流量到达您的容器)
–detach 要求Docker后台运行此容器
–name 为容器自定义命名
// 查看 container 列表
docker container ls
// 停止 contaienr,container name
docker contaienr stop [name]
// 删除 cotainer
docker contaier rm [name]