DOIFORDevOps自建一个DockerHub加速器
DOIFORDevOps自建一个DockerHub加速器

自建一个DockerHub加速器

DevOps技术

唉,心累啊!!!屋漏偏逢连夜雨,本来就访问不了hub.docker.com了,现在连镜像都不能pull了。有很多猜测为什么突然全部宕机,有说是国外切断了咱们的请求,有说是上面需要对镜像进行审查,今天看到个更炸裂的说法,说是有人在镜像里面放了某重要人物的不雅视频。不管怎样,反正就是现在无法pull镜像了,咱们做技术的总的解决这个问题吧!

国内官方推出了一个AtomHub 可信镜像中心,但是这上面镜像不全,就连jdk之类的官方镜像都找不全,当然也不是不能用,实在不行就自己做镜像。不过平时有时候想要玩一些有意思的镜像,特别是想偷懒直接用别人配置好的镜像就不行了,国内根本没有这么一个开放的平台可以让大家随意创造,毕竟都是和谐社会,咱们有规矩,不能像那些野蛮人一样随地大小便。

我相信很多开发朋友都有自己的外网服务器或者梯子,具备这个条件是能成功部署私有加速器的必要条件!部署私有加速器大概也就分三步走:

部署registry服务,并配置代理

这一步主要就是部署一个registry服务,然后将代理地址设置为hub.docker的地址。这一步有三种方法:

docker命令

docker run -d \
--name registry-server \
-v /data/docker-registry:/data \
-p 5000:5000 \
-e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \
registry:2

该命令可以直接启动一个registry服务,并设置代理。

docker-compose

文章末有那篇文章就是用docker-compose来做的,这些将compose文件贴在下面以防未来被和谐:

version: "3"
services:
    docker-registry:
        image: registry:2
        container_name: registry-server
        restart: always
        ports:
            - "5000:5000"
        volumes: 
            - /data/docker-registry:/data   # 数据存放目录
        environment:
            - REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io
            - REGISTRY_PROXY_USERNAME=username 
            - REGISTRY_PROXY_PASSWORD=password
            - REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/data
            - http_proxy=http://10.0.0.1:1080  # proxy
            - https_proxy=http://10.0.0.1:1080 # proxy

说明一下,环境变量最后那个proxy主要就是给那些没有外网服务器的但是有梯子的朋友准备的,自行琢磨吧。

portainer的AppTemplate

这种方法最简单,基本上是一键式的,截两张图你们就知道了:
file
选择第二个,然后给镜像命个名后发布即可:
file

使用那个Nginx等工具配置SSL反向代理

支持配置SSL反向代理的工具很多,Nginx、Appache等都可以,这就是一个很常规的操作,网上一艘一大堆,就不赘述了。

其实也可以不设置,但是需要daemon.json中配置insecure-registries,因为docker默认使用https作为交互协议。

insecure-registries样例如下:

{
  "insecure-registries" : ["192.168.1.100:5000"]
}

如果确实要配置ssl的可是使用FreeSSL, 主要是因为它解决了一个免费SSL的痛点,就是有效期短的问题,FreeSSL可以到期时自动申请、更换证书。

配置客户端daemon.json中的registry-mirrors

需要在daemon.json中增加以下内容:

{
    "registry-mirrors":["https://abc.test.io"] # 此处为测试地址,需更换为上一步中你的设置的地址
}

重启,大功告成!!!!

国内docker镜像站全军覆没 如何自己部署一个Docker镜像加速服务器?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注