扫码阅读
手机扫码阅读

初探镜像管理:写给初学者!

266 2023-09-07

Cloud Native

ESG服务BU云原生交付中心、云基地

在云原生上的尝试、调研与分享

本期作者


朱志强

热爱技术,热爱生活

在此前的云原生项目中有这样一个需求——需要在项目管理平台上集成JFrog的一些功能。而在调研的过程中,我们发现JFrog的jcr版本是支持建立Docker仓库的,自然对镜像的管理(如增删改查)就成为了不可或缺的部分!

以此为背景,本期推文我们就以JFrog Artifactory的jcr版本为基础,用一个小案例简要介绍如何对Docker镜像进行管理。

Docker镜像管理

Docker仓库

本地Docker仓库是可以部署和托管内部Docker镜像的地方。

实际上,它是一个Docker注册表,能够托管被标记的Docker镜像集合,这些镜像就组成了Docker仓库。

而JFrog的jcr版本是支持建立上述Docker仓库。这里首先我们需要使用 JFrog Artifactory 的 jcr 版本,该版本的安装、启动在之前的文章中已经介绍过了。

镜像管理实例

Step 1: 新建仓库

新建一个 Docker 类型的仓库,具体下图所示:

/ 新建Repositories

/ 选择Docker类型

Step 2:修改Docker配置文件

使用下面的命令:

vim /etc/docker/daemon.json

在进入vim编辑器后,新增以下内容(以ip:port的方式添加json):

{"insecure-registries":["127.0.0.1:8081","192.168.253.132:8081"]} { "registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com"]}

/ 在vim中的具体操作

注:

  • 192.168.253.132:8081:是我自己的虚拟机开启JFrog服务的地址和端口号。

  • https://ustc-edu-cn.mirror.aliyuncs.com:是中科大的daocloud仓库。

使用wq命令保存退出后,使用以下命令重新加载配置以及重启Docker:

systemctl daemon-reload && systemctl restart docker

Step 3:登入Artifactory

在执行此步骤前,请先确认虚拟机已经安装Docker。可执行以下命令,查看Docker是否已被安装:

docker --version

/ 已安装Docker

使用以下命令在Docker服务器上登录Artifactory:

docker login 192.168.253.132:8081user:自己的用户名password:自己的密码

第一次登录会提示输入用户名和密码,按回车键登录。

由于我已经登录成功了,所以只有Succeeded的提示。

/ 已登入成功

Step 4:编辑Dockerfile文件

下面我们需要在当前目录下(我自己的是root目录),新建一个文件夹,再新建一个名为Dockerfile的文件。

首先查看当前目录:

pwd

/ 查看当前目录

执行以下命令,来新建文件夹以及文件:

mkdir test-dockercd test-dockertouch Dockerfile

建好之后,cd进入test-docker目录下,使用以下命令进入vim编辑器对Dockerfile文件进行编辑:

/ 编辑Dockerfile

编辑的具体内容如下:

/ 编辑内容

接着在test-docker目录下,新建文件,新建文件名需和Dockerfile文件中三行ADD后的文件名保持一致:

touch jdk-8-linux-x64.tar.gztouch apache-tomcat-8.tar.gztouch server.xml

/ 新建文件

touch命令建的是空文件,需要将下载好的apache-tomcat-8.tar.gz文件与jdk-8-linux-x64.tar.gz文件移动到test-docker目录下(推荐使用Xftp工具操作):

/ 将文件移动到空文件下

注:以上添加文件的过程,只是为了添加构建镜像前的源文件而已,并非一定要这些文件。实质上放一个txt文件也可以将其打成镜像,在Dockerfile文件中进行声明即可。

Step 5:构建Docker镜像

使用以下命令对Docker进行构建:

docker build . -t zhuzqc

注:zhuzqc是镜像名。

/ 构建成功

再给自己生成的镜像增加一个tag标签:

docker tag zhuzqc 192.168.253.132:8081/test-one/zhuzqc:one

上传(push)到 JFrog Artifactory :

docker push 192.168.253.132:8081/test-one/zhuzqc:one

push成功后如下图所示:

/ push成功

于是,我们就可以在JFrog Artifactory中查看镜像的相关信息,且能够看到所有的文件层信息。

/ 在JFrog Artifactory中查看镜像信息

最后,可以查看在虚拟机中是否可以对JFrog中的镜像文件进行pull操作:

docker pull 192.168.253.132:8081/test-one/zhuzqc:onedocker images

/ 本地虚拟机对JFrog中的镜像文件进行pull操作

至此,在本地虚拟机上对JFrog Artifactory的镜像操作(push&pull)就已经完成了。

原文链接: http://mp.weixin.qq.com/s?__biz=Mzg5MzUyOTgwMQ==&mid=2247504709&idx=1&sn=a17584b730169bd19a0a346f80eaae04&chksm=c02fe8e3f75861f5d9a27627eb747f052c29b798dcb2e6572fe86836084f0c3a58fdc1cec6d9#rd