天天看点

docker 为自己的应用创建 container

参考资料

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]