【技术调研】探究 JFrog 镜像管理—以 Docker 为例
在之前的调研中我发现,JFrog 的 jcr 版本是支持建立 Docker 仓库的,那么对镜像的管理(如增删改查)就成为了本次云原生项目不可或缺的部分,接下来我将以 JFrog Artifactory的 jcr 版本为基础,介绍如何对 Docker 镜像进行管理的。
前言
在之前的调研中我们发现,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所示:
三、修改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"]
}
注: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
如未安装docker,请参考:https://www.cnblogs.com/wang-yaz/p/10429899.html
使用以下命令在docker服务器上登录Artifactory:
docker login 192.168.253.132:8081
user:自己的用户名
password:自己的密码
第一次登录会提示输入用户名和密码,按回车键登录。由于我已经登录成功了,所以只有Succeeded的提示。具体如图1-5所示:
五、编辑Dockerfile文件
需要在当前目录下(我自己的是root目录),新建一个文件夹,再新建一个名为Dockerfile的文件。
查看当前目录,如图1-6所示:
pwd
执行以下命令,新建文件夹以及文件:
mkdir test-docker
cd test-docker
touch Dockerfile
建好之后,cd进入test-docker目录下,使用以下命令进入vim编辑器对Dockerfile文件进行编辑,具体如图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所示:
接着在test-docker目录下,
新建文件,新建文件的名需和Dockerfile文件中三行ADD后的文件名保持一致:
touch jdk-8-linux-x64.tar.gz
touch apache-tomcat-8.tar.gz
touch server.xml
如图1-9所示:
touch命令建的是空文件,需要将下载好的apache-tomcat-8.tar.gz文件与jdk-8-linux-x64.tar.gz文件移动到test-docker目录下(推荐使用Xftp工具操作),具体如图1-10所示:
六、构建docker镜像
使用以下命令对docker进行构建:
docker build . -t zhuzqc
注:zhuzqc是镜像名。
执行成功后具体如图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所示:
于是,我们就可以在jfrog artifactory中查看镜像的相关信息,且能够看到所有的文件层信息,具体如图1-14所示:
最后,可以查看在虚拟机中是否可以对JFrog中的镜像文件进行pull操作:
docker pull 192.168.253.132:8081/test-one/zhuzqc:one
docker images
具体如图1-15所示:
至此,在本地虚拟机上对JFrog Artifactory的镜像操作(push&pull)就已经完成了。
更多推荐
所有评论(0)