部署Docker私有仓库

前言

什么叫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本地镜像

推送镜像到私有镜像服务必须先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请示。

添加注册表

拉取镜像

拉取成功

0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论!x