抱歉抱歉,離職后反而更忙了,拖了好久,從4月拖到現在,在學習企業級方案Harbor之前,我們先學習下官方方案registry,話不多說,詳情見下文。
注意:下文省略了基本認證 TLS加密(沒必要)
1.1、拉取registry鏡像
要部署私有倉庫就要使用這個鏡像
docker pull docker.io/library/registry:2
1.2、運行容器
將拉去來的鏡像運行成容器
[root@docker ~]#?docker run -d -v /home/dockerdata/registry:/var/lib/registry --name "pri_registry" --restart=always -p 5000:5000 registry:2?ac1b3e1cff8315339966787e35034cc50a4897282871bb539022ebb4f284410b
-d ?放到后臺
/home/dockerdata/registry表示為宿主機的目錄,如果不存在自動創建
-v映射目錄: ?宿主機的目錄:容器目錄
把宿主機的目錄掛載到容器中,將數據目錄掛載出來就是為了防止docker私有倉庫這個容器被刪除的時候,倉庫里面的鏡像也被刪除。
-p 端口映射:本地端口:容器端口
1.3、訪問本機端口測試
訪問剛剛開啟的5000端口
[root@docker ~]#?curl -i 127.0.0.1:5000HTTP/1.1 200 OKCache-Control: no-cacheDate: Mon, 12 May 2025 10:17:31 GMTContent-Length: 0
1.4、測試下載一個小的鏡像
[root@docker ~]#?docker pull docker.1ms.run/busyboxUsing default tag: latestlatest: Pulling from busybox265dab34035e: Pull complete?Digest: sha256:37f7b378a29ceb4c551b1b5582e27747b855bbfaa73fa11914fe0df028dc581fStatus: Downloaded newer image for docker.1ms.run/busybox:latestdocker.1ms.run/busybox:latest
1.5、更改鏡像名稱
要修改才能上傳至私有倉庫,前面的IP是倉庫宿主機的IP
[root@docker ~]#?docker tag docker.1ms.run/busybox:latest 10.211.55.60:5000/busybox
1.6、修改請求方式
默認為https,不改會報以下錯誤:
[root@docker ~]# docker push 10.211.55.60:5000/busyboxUsing default tag: latestThe push refers to repository [10.211.55.60:5000/busybox]Get "https://10.211.55.60:5000/v2/": http: server gave HTTP response to HTTPS client
因為docker是不允許http下載的,配置文件的意思就是允許使用http下載
vim /etc/docker/daemon.json ???#不存在則創建
{ "insecure-registries":["本機的IP地址:5000"] }
{
??"insecure-registries":?["10.211.55.60:5000"],
??"registry-mirrors":?[
? ??"https://registry.cn-hangzhou.aliyuncs.com",
? ??"https://docker.mirrors.ustc.edu.cn",
? ??"https://hub-mirror.c.163.com"
??]
}
修改完重啟docker?
systemctl restart docker
1.7、上傳鏡像到私有倉庫
上傳
[root@docker ~]# docker push 10.211.55.60:5000/busyboxUsing default tag: latestThe push refers to repository [10.211.55.60:5000/busybox]be632cf9bbb6: Pushed?latest: digest: sha256:c109a60479ed80d63b17808a6f993228b6ace6255064160ea82adfa01c36deba size: 527
查看本地主機鏡像存放目錄
[root@docker ~]# ls /home/dockerdata/registry/docker/registry/v2/repositories/
busybox
1.8、查看私有鏡像倉庫里的所有鏡像
[root@docker ~]#?curl http://10.211.55.60:5000/v2/busybox/tags/list
{"name":"busybox","tags":["latest"]}
1.9、其他機器拉去私有倉庫鏡像測試
注意其他機器要拉取這個私有鏡像倉庫的話需要配置文件配置,因為docker是不允許http下載的,配置文件的意思就是允許使用http下載
注意:這里的IP地址是私有倉庫對應的那臺機器IP地址
vim /etc/docker/daemon.json ???#不存在則創建
{
??"insecure-registries":?["10.211.55.60:5000"],
??"registry-mirrors":?[
? ??"https://registry.cn-hangzhou.aliyuncs.com",
? ??"https://docker.mirrors.ustc.edu.cn"
??],
??"storage-driver": "overlay2",
??"log-opts":?{
? ? "max-size": "10m",
? ? "max-file": "3"
??}
}
[root@docker2 ~]#?docker pull 10.211.55.60:5000/busyboxUsing default tag: latestlatest: Pulling from busybox6d4ad74debaa: Pull complete?Digest: sha256:c109a60479ed80d63b17808a6f993228b6ace6255064160ea82adfa01c36debaStatus: Downloaded newer image for 10.211.55.60:5000/busybox:latest10.211.55.60:5000/busybox:latest
驗證成功,以上就是官方的私有倉庫搭建使用的基本教學了,感謝感謝。弟弟先去忙了