千家信息网

Docker私有仓库Registry如何搭建

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,这篇文章主要为大家展示了"Docker私有仓库Registry如何搭建",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Docker私有仓库Registry如
千家信息网最后更新 2024年11月30日Docker私有仓库Registry如何搭建

这篇文章主要为大家展示了"Docker私有仓库Registry如何搭建",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Docker私有仓库Registry如何搭建"这篇文章吧。

1. 关于Registry

官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像。这个可以通过开源软件Registry来达成目的。

Registry在github上有两份代码:老代码库和新代码库。老代码是采用python编写的,存在pull和push的性能问题,出到0.9.1版本之后就标志为deprecated,不再继续开发。从2.0版本开始就到在新代码库进行开发,新代码库是采用go语言编写,修改了镜像id的生成算法、registry上镜像的保存结构,大大优化了pull和push镜像的效率。

官方在Docker hub上提供了registry的镜像(详情),我们可以直接使用该registry镜像来构建一个容器,搭建我们自己的私有仓库服务。Tag为latest的registry镜像是0.9.1版本的,我们直接采用2版本。

2. Registry的部署

运行下面命令获取registry镜像,

$ sudo docker pull registry:2

然后启动一个容器,

$ sudo docker run -d -v /wks/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:2

Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/wks/registry目录挂载到该目录,即可实现将镜像保存到主机的/wks/registry目录了。

运行docker ps看一下容器情况,

$ sudo docker ps CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMESf3766397a458        registry:2      "/bin/registry /etc/d"   46 seconds ago      Up 45 seconds       0.0.0.0:5000->5000/tcp   registry

说明我们已经启动了registry服务,打开浏览器输入http://127.0.0.1:5000/v2,出现下面情况说明registry运行正常,

3. 验证

现在我们通过将镜像push到registry来验证一下。

我的机器上有个hello-world的镜像,我们要通过docker tag将该镜像标志为要推送到私有仓库,

$ sudo docker tag hello-world 127.0.0.1:5000/hello-world

然后查看以下本地的镜像,

$ sudo docker imagesREPOSITORY                   TAG                 IMAGE ID            CREATED             VIRTUAL SIZEregistry                     2               b91f745cd233        5 days ago          220.1 MBubuntu                       14.04               a5a467fddcb8        6 days ago          187.9 MBhello-world                  latest              975b84d108f1        2 weeks ago         960 B127.0.0.1:5000/hello-world   latest              975b84d108f1        2 weeks ago         960 B

接下来,我们运行docker push将hello-world镜像push到我们的私有仓库中,

$ sudo docker push 127.0.0.1:5000/hello-worldThe push refers to a repository [127.0.0.1:5000/hello-world] (len: 1)975b84d108f1: Image successfully pushed 3f12c794407e: Image successfully pushed latest: digest: sha256:1c7adb1ac65df0bebb40cd4a84533f787148b102684b74cb27a1982967008e4b size: 2744

现在我们可以查看我们本地/wks/registry目录下已经有了刚推送上来的hello-world。我们也在浏览器中输入http://127.0.0.1:5000/v2/_catalog,如下图所示,

现在我们可以先将我们本地的127.0.0.1:5000/hello-world和hello-world先删除掉,

$ sudo docker rmi hello-world$ sudo docker rmi 127.0.0.1:5000/hello-world

然后使用docker pull从我们的私有仓库中获取hello-world镜像,

$ sudo docker pull 127.0.0.1:5000/hello-worldUsing default tag: latestlatest: Pulling from hello-worldb901d36b6f2f: Pull complete 0a6ba66e537a: Pull complete Digest: sha256:1c7adb1ac65df0bebb40cd4a84533f787148b102684b74cb27a1982967008e4bStatus: Downloaded newer image for 127.0.0.1:5000/hello-world:latest$ sudo docker imagesREPOSITORY                   TAG                 IMAGE ID            CREATED             VIRTUAL SIZEregistry                     2               b91f745cd233        5 days ago          220.1 MBubuntu                       14.04               a5a467fddcb8        6 days ago          187.9 MB127.0.0.1:5000/hello-world   latest              0a6ba66e537a        2 weeks ago         960 B

4. 可能问题

可能会出现无法push镜像到私有仓库的问题。这是因为我们启动的registry服务不是安全可信赖的。这是我们需要修改docker的配置文件/etc/default/docker,添加下面的内容,

DOCKER_OPTS="--insecure-registry xxx.xxx.xxx.xxx:5000"

然后重启docker后台进程,

$ sudo service docker restart

这是再push即可。

以上是"Docker私有仓库Registry如何搭建"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

镜像 仓库 私有 代码 内容 容器 版本 目录 服务 运行 篇文章 这是 问题 主机 官方 情况 标志 浏览器 学习 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 我的世界国际版服务器ip合集 cmd命令怎么查看数据库 哪些数据库属于考试类数据库 网络安全层面有哪些安全技术 做软件开发投标书 数据库给时间转换英文月份 天津惠普服务器虚拟化设计 网易云信软件开发好吗 物理服务器架设方案 网民评论网络安全感 传奇外传哪个服务器好 传奇怀旧版服务器更新刷怪时间 搭建服务器和路由器 如何进入2b2t服务器并注册 网络安全与文化保护有关 学校网络安全管理员责任书 如何做程序软件开发 sql数据库控制台怎么创建表 作战数据库的概念 上海致镁互联网科技有限公司 android操作数据库 数据库bak1文件怎么打开 哪些数据库属于考试类数据库 sql数据库中二进制数据是什么 红旗杯网络安全宣传 电脑视频软件开发 河北工控软件开发报价 阿里云数据库配置负载均衡 数据库视图可串行化调度 两台服务器同步不上
0