docker学习实践之路[第三站]node站点部署
拉取node镜像
docker pull node
定制Dockerfile文件
FROM node EXPOSE 8360 ENTRYPOINT [ "node", "/www/production.js" ]
- FROM 指定基础镜像:
所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制。就像我们之前运行 了一个 nginx 镜像的容器,再进行修改一样,基础镜像是必须指定的。而 FROM 就是指定基础镜像,因此一个 Dockerfile 中 FROM 是必备的指令,并 且必须是第一条指令。
- EXPOSE 声明端口
EXPOSE 指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不 会因为这个声明应用就会开启这个端口的服务。在 Dockerfile 中写入这样的声明有 两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映 射;另一个用处则是在运行时使用随机端口映射时,也就是 docker run -P 时,会自动随机映射 EXPOSE 的端口。
- ENTRYPOINT 入口点
ENTRYPOINT 的目的和 CMD 一样,都是在指定容器启动程序及参 数。 ENTRYPOINT 在运行时也可以替代,不过比 CMD 要略显繁琐,需要通过 docker run 的参数 --entrypoint 来指定。
建立镜像
docker build -t mythinkjs .
mythinkjs为新建立镜像的名称,尾部的.必须添加,这个是指明在当前位置寻找Dockerfile文件。
测试运行
docker run --name mythinkjs -d -v /mnt/www/w2:/www -p 80:8360 thinkjs_demo
上面命令如有不清楚请看上一篇文章。
下面结果:
我要我的自我!