如果构建项目时,使用了k8s
+ docker
+ Jenkins
的模式。 那么我们在docker构建镜像时,如果需要使用了Nodejs,那么我们必须得从某个资源库中拉取需要的Nodejs。 在企业里,正常都会把自己项目涉及的库都放在harbor私服里。 下面讲一下,升级Nodejs库和Docker拉取库推送到私有库的操作流程。
(1)拉取和检查镜像
首先,我们需要到docker hub
公共镜像仓库中,寻找一个自己需要的镜像进行测试。我们找个例子,比如的Nodejs
的alpine版本
镜像。
下面是docker hub
的官网地址:
docker hub地址: https://registry.hub.docker.com/_/node/tags?page=1&name=16.13.2
复制一下镜像的拉取指令,并在本地服务器上执行。
docker pull node:16.13.2-alpine3.14
接下来查看docker镜像是否拉取下来,并且进入镜像的里,执行shell指令,看是否正常。
查看关于node的镜像的指令
docker images|grep node进入目标镜像shell终端的指令
docker un -it --rm node:16.13.2-alpine3.14 /bin/sh
进入之后执行一些简单的shell指令,同时也可以检查镜像内部的一些信息。如果都正常,我们的镜像就可以使用啦。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2j7CIBwJ-1689156963499)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0111217b584b440fa2fb0e9e168239c0~tplv-k3u1fbpfcp-watermark.image?)]
(2)推送到harbor私服
下面再结合上面的镜像,跟harbor
私有镜像仓库和docker hub
公有镜像仓库结合创建。下面是涉及到的一些官方地址:
harbor官方地址: https://goharbor.io/
harbor测试私有仓库地址: https://demo.goharbor.io/
docker hub 地址: https://registry.hub.docker.com/_/node/tags
我们已经通过docker pull
的指令把Nodejs公有镜像
拉到本地服务器上了。那么现在我们需要给拉下来的镜像打上标签。打标签的指令如下:
docker tag 本地镜像 地址[:端口号]/仓库名[:标签]
docker tag node:16.13.2-alpine3.15 demo.goharbor.io/your-project/node:16.13.2-alpine3.15
打完标签之后,需要登录harbor
, 并把镜像推送到harbor
私服上。
docker login demo.goharbor.iodocker push demo.goharbor.io/your-project/node:16.13.2-alpine3.15
执行上面的指令之后,推送到私服的流程就完毕啦。我们也可以在web端登录harbor,查看是否推送到私服上啦。