如果构建项目时,使用了k8s + docker + Jenkins的模式。 那么我们在docker构建镜像时,如果需要使用了Nodejs,那么我们必须得从某个资源库中拉取需要的Nodejs。 在企业里,正常都会把自己项目涉及的库都放在harbor私服里。 下面讲一下,升级Nodejs库和Docker拉取库推送到私有库的操作流程。

(1)拉取和检查镜像

首先,我们需要到docker hub 公共镜像仓库中,寻找一个自己需要的镜像进行测试。我们找个例子,比如的Nodejsalpine版本镜像。
下面是docker hub的官网地址:

docker hub地址: https://registry.hub.docker.com/_/node/tags?page=1&name=16.13.2

复制一下镜像的拉取指令,并在本地服务器上执行。

docker_2.png

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.io

docker push demo.goharbor.io/your-project/node:16.13.2-alpine3.15

执行上面的指令之后,推送到私服的流程就完毕啦。我们也可以在web端登录harbor,查看是否推送到私服上啦。

GitHub 加速计划 / ha / harbor
23.24 K
4.68 K
下载
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
最近提交(Master分支:1 个月前 )
ad8c5df5 Signed-off-by: chlins <chlins.zhang@gmail.com> Co-authored-by: Wang Yan <wangyan@vmware.com> 1 天前
ab400c9d * Implemented proxy-cache bandwidth limit UI change Signed-off-by: kunal-511 <yoyokvunal@gmail.com> * Removed ducplicate space between words Signed-off-by: kunal-511 <yoyokvunal@gmail.com> * Fix UT issue Signed-off-by: stonezdj <stone.zhang@broadcom.com> --------- Signed-off-by: kunal-511 <yoyokvunal@gmail.com> Signed-off-by: stonezdj <stone.zhang@broadcom.com> Co-authored-by: stonezdj <stone.zhang@broadcom.com> 1 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐