群晖NAS搭建Docker私服

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/catoop/article/details/89739266

公服:dockerhub等(优点:什么都有。缺点:慢,不私有。)
私服:解决公服的缺点。

本文以群晖NAS搭建为例(熟悉Docker的,看了本文,不是群晖也一样操作)
准备说明
1、私服镜像地址(https://hub.docker.com/_/registry)
2、私服映射端口(宿主机4000映射registry容器的5000)
3、私服镜像文件保存位置映射(宿主机目录docker/docker-registry/data映射容器/tmp/registry)
因为容器内部默认将镜像保存到/tmp/registry目录,映射出来,防止删除容器后数据丢失!

步骤
1、群晖NAS》Docker》注册表》搜索registry(应该是第一个,右边有官方认证镜像图标)》下载镜像
2、映像》选中下载完成的registry》启动按钮》高级设置
3、名称(docker-registry)叫什么你随意,端口和卷,按上面的说明填
4、应用》一直下一步》应用(结束)

访问
打开浏览器输入 http://192.168.x.x:4000/v2/_catalog 能正常访问就说明成功了。
PS:你可以把IP地址变成域名,这样比较方便。例如 http://registry.domain.com:4000

说明
1、假设你推送一个镜像 xzxiaoshan/demo 到这个私服,那么你这个镜像的访问地址就是 http://registry.domain.com:4000/v2/_catalog 就不会是404了。
2、推送镜像到私服的命令为

docker push registry.domain.com:4000/xzxiaoshan/demo:latest

直接这样,会出现错误:

root@HOME-NAS:~# docker push registry.domain.com:4000/xzxiaoshan/frps:v0.27.0
The push refers to a repository [registry.domain.com:4000/xzxiaoshan/frps]
An image does not exist locally with the tag: registry.domain.com:4000/xzxiaoshan/frps
root@HOME-NAS:~# 

由于docker默认镜像仓库是dockerhub,所以xzxiaoshan/frps:v0.27.0相当于docker.io/xzxiaoshan/frps:v0.27.0,因此,想要将镜像推送到私服仓库中,需要修改镜像标签。

docker tag xzxiaoshan/frps:v0.27.0 registry.domain.com:4000/xzxiaoshan/frps:v0.27.0

然后再重新执行docker push命令即可,下面是我做测试的一个示例:

root@HOME-NAS:~# docker tag xzxiaoshan/frps:v0.27.0 registry.domain.com:4000/xzxiaoshan/frps:v0.27.0
root@HOME-NAS:~# docker push registry.domain.com:4000/xzxiaoshan/frps:v0.27.0
The push refers to a repository [registry.domain.com:4000/xzxiaoshan/frps]
1cfcb4906068: Pushed 
767f936afb51: Pushed 
release-0.24.1: digest: sha256:99eececd9cf374c8082f951b7989cdc5fd618d943384fd8973f4b68c54cf54b4 size: 739
root@HOME-NAS:~#

3、从私服下载镜像的命令为

docker pull registry.domain.com:4000/xzxiaoshan/frps:v0.27.0

4、常用的几个API地址

# 查看私服镜像所有仓库
http://localhost:5000/v2/_catalog
# 查看仓库中镜像的所有标签列表,以xzxiaoshan/frps为例
http://localhost:5000/v2/xzxiaoshan/frps/tags/list
# 更多API详见官网地址
https://docs.docker.com/registry/spec/api/

你可以再加一个nginx整一个和dockerhub类似的先登录才能用的玩意。
作为私服,一般内部使用,感觉意义不大。

(END)

猜你喜欢

转载自blog.csdn.net/catoop/article/details/89739266