千家信息网

Linux中怎么搭建Docker私有仓库

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,本篇内容主要讲解"Linux中怎么搭建Docker私有仓库",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Linux中怎么搭建Docker私有仓库"吧!1、
千家信息网最后更新 2024年11月30日Linux中怎么搭建Docker私有仓库

本篇内容主要讲解"Linux中怎么搭建Docker私有仓库",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Linux中怎么搭建Docker私有仓库"吧!

1、下载registry镜像

[root@localhost ~]# docker pull registryUsing default tag: latestlatest: Pulling from library/registry486039affc0a: Pull completeba51a3b098e6: Pull complete8bb4c43d6c8e: Pull complete6f5f453e5f2d: Pull complete42bc10b72f42: Pull completeDigest: sha256:7d081088e4bfd632a88e3f3bcd9e007ef44a796fddfe3261407a3f9f04abe1e7Status: Downloaded newer image for registry:latestdocker.io/library/registry:latest

2、生成registry容器,开放5000端口

[root@localhost ~]# docker create -it registry /bin/bashfd51aa59dc5cea7b589d0403e562cb8f0098c3a8a7da239572dd5bfd9423ec96[root@localhost ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESfd51aa59dc5c registry "/entrypoint.sh /bin…" 10 seconds ago Created optimistic_saha#建议直接执行下面的这个命令,因为笔者遇到start这个容器发现退出的状态码非0(后面解决了,使用/bin/sh环境即可)[root@localhost ~]# docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registryceb498d622ab743fc858a993e3870f9831e20436cb71f7225215f1f0899571f1[root@localhost ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESceb498d622ab registry "/entrypoint.sh /etc…" 2 seconds ago Up 2 seconds 0.0.0.0:5000->5000/tcp strange_swansondocker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry命令的解释:-d ——守护进程-v ——数据卷设置{/data/registry表示的宿主机系统中的一个绝对路径,没有的时候会自动创建,/tmp/registry表示容器内部的目录}#宿主机目录[root@localhost ~]# ls /bin boot data dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var[root@localhost ~]# ls /data/registry#容器内部目录[root@localhost ~]# docker exec -it ceb498d622ab /bin/sh/ # ls /bin etc media root srv usrdev home mnt run sys varentrypoint.sh lib proc sbin tmp/ # ls tmp/registry

3、客户端设置daemon.json文件 (指定私有仓库位置)

[root@localhost ~]# vim /etc/docker/daemon.json{"insecure-registries": ["20.0.0.149:5000"], #将本地服务器作为私有仓库位置"registry-mirrors": ["https://5m9y9qbl.mirror.aliyuncs.com"]}[root@localhost ~]# systemctl restart docker

4、创建本地的镜像标签

[root@localhost ~]# docker pull httpdUsing default tag: latestlatest: Pulling from library/httpd123275d6e508: Pull completee984dd982a6e: Pull complete963280e5cf81: Pull complete6faf90d050b2: Pull complete962b56984bb0: Pull completeDigest: sha256:d5dc0d279039da76a8b490d89a5c96da83a33842493d4336b42ccdfbd36d7409Status: Downloaded newer image for httpd:latestdocker.io/library/httpd:latest[root@localhost ~]# docker tag httpd:latest 20.0.0.149:5000/httpd

5、上传镜像

[root@localhost ~]# docker push 149:5000/httpdThe push refers to repository [149:5000/httpd]An image does not exist locally with the tag: 149:5000/httpd[root@localhost ~]# docker push 20.0.0.149:5000/httpdThe push refers to repository [20.0.0.149:5000/httpd]9dabb51b1ca2: Pushed4621e8a6d1da: Pushede728c649bc91: Pushed1a935e59aa8a: Pushedb60e5c3bcef2: Pushedlatest: digest: sha256:8f10edef61246c6c142a87304d4ffa68298662ecb619776e4e9817d06ec5f567 size: 1367[root@localhost ~]# curl -XGET http://20.0.0.149:5000/v2/_catalog{"repositories":["httpd"]}#有上面的结果表示上传成功

6、下载镜像测试

[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhttpd latest bdc169d27d36 Less than a second ago 166MB20.0.0.149:5000/httpd latest bdc169d27d36 Less than a second ago 166MBregistry latest 708bc6af7e5e 2 months ago 25.8MB[root@localhost ~]# docker rmi bdc169d27d36Error response from daemon: conflict: unable to delete bdc169d27d36 (must be forced) - image is referenced in multiple repositories[root@localhost ~]# docker rmi bdc169d27d36 -fUntagged: 20.0.0.149:5000/httpd:latestUntagged: 20.0.0.149:5000/httpd@sha256:8f10edef61246c6c142a87304d4ffa68298662ecb619776e4e9817d06ec5f567Untagged: httpd:latestUntagged: httpd@sha256:d5dc0d279039da76a8b490d89a5c96da83a33842493d4336b42ccdfbd36d7409Deleted: sha256:bdc169d27d36e2438ec8452c7dd7a52a05561b5de7bef8391849b0513a6f774bDeleted: sha256:6535aa332fb72ca508f550fef8ffb832d4c6bc72a48720b42659e10d47668181Deleted: sha256:c7bce1fab718a11501a672c895a729b1fdf8099d00fe152bef8c2534ee455976Deleted: sha256:75b6b2392924b062257ed97e5c2f3aa9f50a922b94c3f7c342d0aed2370e8becDeleted: sha256:267e2020b1bd0b182eb02d1a0f3e2f72efc542890ef6159ed9c3570322608de0Deleted: sha256:b60e5c3bcef2f42ec42648b3acf7baf6de1fa780ca16d9180f3b4a3f266fe7bc[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEregistry latest 708bc6af7e5e 2 months ago 25.8MB[root@localhost ~]#

测试:

[root@localhost ~]# docker pull 20.0.0.149:5000/httpdUsing default tag: latestlatest: Pulling from httpd123275d6e508: Pull completee984dd982a6e: Pull complete963280e5cf81: Pull complete6faf90d050b2: Pull complete962b56984bb0: Pull completeDigest: sha256:8f10edef61246c6c142a87304d4ffa68298662ecb619776e4e9817d06ec5f567Status: Downloaded newer image for 20.0.0.149:5000/httpd:latest20.0.0.149:5000/httpd:latest[root@localhost ~]#

拉取成功并且拉取镜像的速度很快。

最后给出上面出现的状态码错误的问题具体解决:

到此,相信大家对"Linux中怎么搭建Docker私有仓库"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0