使用docker来打包node.js开发的应用,然后发布到自己的私有仓库。在远程机器上拉取这个镜像,做到开发/测试/线上环境的一致性。
为了以后k8s的测试用,特意打包了一个简单的node demo镜像,然后发布到docker hub上。
node demo
1 | // app.js |
docker image
创建Dockerfile文件,写入如下内容:1
2
3
4FROM mhart/alpine-node:10
EXPOSE 8080
COPY app.js .
CMD node app.js
这里使用的node基础镜像是mhart/alppine-node:10,打包出来的镜像大小在74m左右。
执行docker build -t hello-node:0.0.1 .
docker hub
注册登陆 https://hub.docker.com ,
这里的docker ID是你以后镜像仓库的前缀,比如我的是dillonliang,获取我的镜像就是docker pull dillonliang/image_name,创建一个有意义且不重复的docker ID。
在命令执行如下命令登陆docker1
docker login -u DOCKER_ID -p PASSWORD
控制台打印Login Succeeded代表你已经登陆成功了。
这里的DOCKER_ID是在docker hub里申请的Docker ID,PASSWORD是登陆的密码。
推送image并验证
对hello-node重新打tag1
docker tag hello-node:0.0.1 dillonliang/hello-node:latest
发布到docker hub1
docker push dillonliang/hello-node
删除本地的docker image1
2docker rmi hello-node:0.0.1
docker rmi dillonliang/hello-node:latest
此时检查docker images,没有了刚才我们创建的hello-node
拉取发布到docker hub中的镜像1
docker pull dillonliang/hello-node
拉取成功后,说明你的镜像可以被别人使用了,我们将用这个hello-node镜像做后续的k8s操作。