前言
什么叫docker私有仓库,字面就可以看的出就是面对有限范围提供docker镜像的docker服务器,个人部署有啥用呢?因为官方服务器被墙原因,现在部署拉取容器很难拉下来,能拉的也很慢。如果自己本地机器使用,可以更改源。如果我们需要经常需要在其他非本土地机器拉取部署容器,不能每次在新的机器上部署容器时都更改源,太麻烦了,直接建一个私有仓库,推送自己需要的镜像,每次在一个新地方部署容器时直接自己的仓库这样就很方便了。
局域网使用
在搭建前我们首先需要配置Docker信任地址,首先执行以下命令,打开要修改的文件
				
					vi /etc/docker/daemon.json 
				
			
		将以下内容添加进去,IP为你要部署的私有仓库服务器IP,端口为容器映射的主机端口,注意与上部分内容之间一个逗号,因为是json格式的数据,记得保存后退出。
				
					"insecure-registries":["http://10.10.10.2:8080"] 
				
			
		 
															配置完后重载一下docker配置
				
					systemctl daemon-reload 
				
			
		再重启一下docker服务
				
					systemctl restart docker 
				
			
		如果在重启docker服务时出现以下错误,那就是你忘记了添加逗号。
 
															外网服务器
例如registry所在服务器公网 IP 为 27.119.103.104 ,且防火墙开放了 5000 端口,但是没有配置域名和进行反向代理,那就填写服务器IP加端口号。
				
					{
    "insecure-registries": [
      "27.119.103.104:5000"
    ]
} 
				
			
		如果你的registry所在服务器已经配置好了域名并开启了反向代理,并且配置了SSL,则可以不用配置daemon.json文件
拉取&部署
首先拉取registry镜像,Docker官方的Docker Registry是一个基础版本的Docker镜像仓库,具备仓库管理的完整功能
别忘记修改成自己实际配置的端口和文件映射
				
					
version: '3.0'
services:
  registry:
    container_name: registry
    image: registry 
    ports:
      - 7080:5000
    volumes:
      - /smb/docker/registry:/var/lib/registry
    restart: unless-stopped  
				
			
		使用
推送镜像到私有镜像服务必须先tag
比如我们本地已经拉取了一个emby的镜像,或者本地已经有一个我们自己制作的镜像,我想要将它推送到我们的私有镜像,首先tag本地镜像比如:linuxserver/emby
				
					docker tag linuxserver/emby:latest 10.10.10.2:7080/emby:local  
				
			
		linuxserver/emby:latest就是原镜像名,10.10.10.2:7080/emby:local就是我们修改后的镜像名,emby和local可以随意更改
- 推送镜像
				
					docker push 10.10.10.2:7080/emby:local  
				
			
		- 拉取镜像
				
					docker pull 10.10.10.2:7080/emby:local  
				
			
		- 公网服务器 
如果是私有镜像库部署在公网服务器上,直接将IP变成你的域名即可。
如果是带域名的服务器直接把IP和端口换成你的域名即可。
				
					docker push 27.119.103.104:7080/emby:local  
				
			
		在Portainer中使用
在Portainer中使用如果是在局域网中或者公网服务器没有配置域名和ssl也要修改/etc/docker/daemon.json文件,否则会出现错误以下错误,意思说是发送的请求是https,而响应的却是http,所以错误。这也就说为什么拉取配置好反向代理和配置域名和ssl的私有仓库时不需要配置daemon.json文件,而能正常拉取了,因为目标服务器可以响应https请示。
 
															添加注册表
 
															拉取镜像
 
															拉取成功
 
															