如果构建项目时,使用了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分支:2 个月前 )
9e55afbb pull image from registry.goharbor.io instead of dockerhub Update testcase to support Docker Image Can Be Pulled With Credential Change gitlab project name when user changed. Update permissions count and permission count total Change webhook_endpoint_ui Signed-off-by: stonezdj <stone.zhang@broadcom.com> Co-authored-by: Wang Yan <wangyan@vmware.com> 5 天前
3dbfd422 Signed-off-by: wang yan <wangyan@vmware.com> 5 天前
Logo

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

更多推荐