利用registry自建Docker私有镜像仓库

2025-02-23 16:27:33 0点赞 4收藏 0评论

以unraid为仓库端,fnos为客户端。

使用的docker为registry:v2

本文是自己安装碰到的问题合集,参考了网络文献,做一个归档记录。

利用registry自建Docker私有镜像仓库

1:下载registry

如果你没有梯子或者代理,无法下载到registry,那么可以使用istoreos的增强功能,拉取镜像。

镜像拉取完成后,选择保存,浏览器下载回本地,重命名为registry.tar

2:上传到unraid

打开ssh工具finalshell,将registry.tar拖到root目录下

命令行上传

docker load -i registry.tar

查询是否上传成功

docker images

会看到一个none的名称,image id是26b2eb03618e,我们需要进行重命名。

docker tag id registry.tar

docker tag 26b2eb03618e registry.tar

3:unraid docker compose 安装

docker compose

version: "3.8"
services:
registry: privileged: true #权限true
image: registry #镜像
restart: always #开机自启
container_name: registry #服务名
network_mode: bridge #网络桥接
ports:
- 5000:5000 #端口
volumes:
- /mnt/user/appdata/registry/data:/var/lib/registry #挂载目录配置

网址为http://IP:5000/v2/_catalog

4:registry配置及推送镜像

我们推送到仓库的镜像文件,需要重命名为IP:5000/images

docker tag images IP:5000/images

举例:docker tag minio/minio 192.168.1.10:5000/minio

或者 docker tag minio/minio 192.168.1.10:5000/minio/minio

修改后docker images 查看是否有192.168.1.10:5000/minio的镜像名

推送到私有仓库

docker push IP:5000/images

举例:docker push 192.168.1.10:5000/minio

这时候会出现以下报错

Error response from daemon: Get "https://192.168.1.10:5000/v2/": http: server gave HTTP response to HTTPS client

这是因为docker的https问题。

打开finalshell,进入unraid的ssh

因为unarid的机制问题,修改/etc/docker/daemon.json的文件,重启后会复位。

选择修改/boot/config/go 打开go文件后,添加以下信息:

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https:/registry.hub.docker.com"],
"insecure-registries": ["IP:5000"]
}
EOF

ip修改为自己,这样开机自动加载

如遇到docker无法启动,有可能是标点符号错误,检查中英文的标点符号区别。

重启unraid

再次尝试推送镜像命令

docker push IP:5000/images

成功后打开浏览器

http://IP:5000/v2/_catalog是否显示推送的镜像


验证:

删除本地IP:5000/images镜像

docker rmi IP:5000/images

docker images查询是否已经删除

拉取私有仓库镜像

docker pull IP:5000/images

docker images查看是否拉取成功

到此unraid上的私有仓库搭建完成。

5:fnos端拉取私有仓库

同样,fnos也会提示错误,需要修改配置。

Error response from daemon: Get "https://192.168.1.10:5000/v2/": http: server gave HTTP response to HTTPS client

打开finalshell

复制fnos的/etc/docker/daemon.json到本地做备份

修改文件需要root权限

sudo -i

echo '{"data-root":"/vol1/docker","insecure-registries":["127.0.0.1:19827","IP:5000"],"live-restore":true,"registry-mirrors":["https://registry.hub.docker.com"]}' > /etc/docker/daemon.json

修改ip

重启docker服务

systemctl restart docker

拉取私有仓库镜像

docker pull IP:5000/images

docker images查看是否拉取成功

本教程到此结束。

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

咸鱼的逆袭

Ta还没有介绍自己

关注 打赏
最新文章 热门文章
4
扫一下,分享更方便,购买更轻松