如何编写Dockerfile构建镜像(入门)

续前文,https://blog.csdn.net/swordtraveller/article/details/113717239
如果我们设计好了一套发布node.js接口服务的容器流程,那么如何将其定义为镜像呢?

  1. 创建一个目录,目录里放所需材料,和Dockerfile文件
	data.json
	server.js
	Dockerfile
  1. Dockerfile里写:
# Version 0.1.202102051153

FROM node:ea27

MAINTAINER xxx@qq.com

COPY data.json /home/script/data.json
COPY server.js /home/script/server.js

EXPOSE 8080

WORKDIR /home/script

CMD node server.js

由于server.js中读取./data.json的这个.可能指的是node命令运行所在的目录,所以如果在/下node /home/script/server.js,那么server.js会去读取/data.json,是不对的。

应该先切目录(WORKDIR)到/home/script,再在此目录下node server.js,./data.json就是/home/script/data.json了。

COPY后面的/home/script的/data.json不要省略,不然就变成复制data.json为文件script了。

然后目录下执行

docker build -t ImageName:ImageTag .

结尾的.不可少

docker run -itd --name ContainerName -p IP:8080 Image...

这样就运行起来了。

近似对比:

docker run -itd --name node-test -p IP:8080 node:ea27 → FROM node:ea27 ... EXPOSE 8080
docker cp data.json node-test:/home/script/data.json  → COPY data.json /home/script/data.json
docker cp server.js node-test:/home/script/server.js  → COPY server.js /home/script/server.js
WORKDIR /home/script								  → docker exec -it node-test /bin/bash cd /home.script
CMD node server.js									  → node server.js

运行基础容器

复制资源

操作资源

指定基础镜像

复制资源

操作资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值