前言

在之前的调研中我们发现,JFrog的jcr版本是支持建立Docker仓库的。而云原生项目的一个需求,就是在项目管理平台上去集成JFrog的一些功能。那么对镜像的管理(如增删改查)就成为了不可或缺的部分,接下来我们以JFrog Artifactory的jcr版本为基础,介绍如何对Docker镜像进行管理的。

根据官网的介绍,该版本可以通过创建本地、远程的Docker仓库来管理Docker镜像。无论该镜像资源是本地的还是远程的(如Docker Hub)。

一、配置本地Docker

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

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

首先我们需要使用JFrog Artifactory的jcr版本,该版本的安装、启动在之前的文章中已经介绍过了。

二、新建仓库

新建一个Docker类型的仓库,具体如图1-1和图1-2所示:

在这里插入图片描述

图1-1

在这里插入图片描述

图1-2
三、修改docker配置文件

使用以下命令:

vim /etc/docker/daemon.json

在进入vim编辑器后,新增以下内容(以ip:port的方式添加json),具体如图1-3所示:

{"insecure-registries":["127.0.0.1:8081","192.168.253.132:8081"]
}

{
  "registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com"]
}

在这里插入图片描述

图1-3

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

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

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

systemctl daemon-reload && systemctl restart docker
四、登录Artifactory

在执行此步骤前,请先确认虚拟机已经安装docker。执行以下命令,具体如图1-4所示:

docker --version

在这里插入图片描述

图1-4

如未安装docker,请参考:https://www.cnblogs.com/wang-yaz/p/10429899.html

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

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

第一次登录会提示输入用户名和密码,按回车键登录。由于我已经登录成功了,所以只有Succeeded的提示。具体如图1-5所示:

在这里插入图片描述

图1-5
五、编辑Dockerfile文件

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

查看当前目录,如图1-6所示:

pwd

在这里插入图片描述

图1-6

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

mkdir test-docker
cd test-docker
touch Dockerfile

建好之后,cd进入test-docker目录下,使用以下命令进入vim编辑器对Dockerfile文件进行编辑,具体如图1-7所示:

在这里插入图片描述

图1-7

编辑的具体内容如下:

FROM ubuntu:latest

MAINTAINER zhuzqc

RUN /bin/bash -c cd ~; cd /home ; mkdir -p exec
ADD jdk-8-linux-x64.tar.gz /home/exec
RUN /bin/bash -c cd /home/exec; mv /home/exec/jdk* /home/exec/jdk8
ENV JAVA_HOME=/home/exec/jdk8
RUN sed "/securerandom.source=/{s/file:\/dev\/random/file:\/dev\/urandom/}" /home/exec/jdk8/jre/lib/security/java.security -i

ADD apache-tomcat-8.tar.gz /home/exec
RUN /bin/bash -c cd /home/exec; mv /home/exec/apache-tomcat-8.* /home/exec/tomcat
ADD server.xml /home/exec/tomcat/conf
ENV CATALINA_HOME=/home/exec/tomcat
ENV TEST_ENV=2

CMD /bin/bash -c cd /home/exec; /home/exec/tomcat/bin/catalina.sh run

如图1-8所示:

在这里插入图片描述

图1-8

接着在test-docker目录下,

新建文件,新建文件的名需和Dockerfile文件中三行ADD后的文件名保持一致:

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

如图1-9所示:

在这里插入图片描述

1-9

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

在这里插入图片描述

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

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

docker build . -t zhuzqc

注:zhuzqc是镜像名。

执行成功后具体如图1-11和1-12所示:

在这里插入图片描述

图1-11

在这里插入图片描述

图1-12

再给自己生成的镜像增加一个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成功后具体如图1-13所示:

在这里插入图片描述

图1-13

于是,我们就可以在jfrog artifactory中查看镜像的相关信息,且能够看到所有的文件层信息,具体如图1-14所示:

在这里插入图片描述

图1-14

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

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

具体如图1-15所示:

在这里插入图片描述

图1-15

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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐