• 作者:老汪软件技巧
  • 发表时间:2024-09-24 21:03
  • 浏览量:

时至2024年的今天,Docker容器化技术已经与各位IT老表们的生活息息相关,无论您是才高八斗的前端,文采斐然的后端,出类拔萃的测试,才华横溢的运维还是刚入行的新人,想必在进行新项目调研或者代码测试/部署的时候都会优先选择使用docker容器快速调试或者运行。“没用过? 这么方便还不赶紧去研究研究”

但是在今年六月左右一个月黑风高的夜晚,国内加速器竟被一夜封禁,到底是人性的扭曲还是道德的…. 咳咳…都不是重点,重点是在如此大环境下我们怎么正常获取docker镜像,让我们回归快乐的生活。

闲话少说,我为大家整理了如下三种方法应对此情况1.顺手牵羊

目前国内很多优秀的同行已经无私的奉献了自己的加速站点,各位如果想临时使用或者要求不高的情况下可以选择该类方式.

1.1 作者本人常用的加速器“满足80%需求”

vi /etc/docker/daemon.json
{
    "registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com/","https://ccr.ccs.tencentyun.com/","https://docker.m.daocloud.io/"]
}
systemctl  daemon-reload
systemctl  restart docker

建议复制粘贴哈,大家都是搞计算机的眼神不好很正常.避免docker重启异常一顿抓狂

1.2 好心大佬持续维护网站

其他人持续维护的网站

2.大树乘凉

github中维护多个镜像项目可以下载指定镜像,有门槛哈~

科学上网github账号

public-image-mirror #完全免费

_docker镜像加速原理_容器镜像国内加速服务

DockerTarBuilder #每天1小时免费

3.我命由我不由天

部署一个属于自己的加速器,也有门槛哈~

极简风: 购买一台海外服务器手动pull镜像

环境准备:

系统nginx

ubuntu20/22

无所谓

3.1 nginx部署安装

sudo apt-get update
sudo apt-get -y install
vim /etc/nginx/sites-enabled/default
server {
    #同时监听80和443端口
    listen     80;
    listen     443 ssl;
    server_name  docker.hasten.com;# 需要修改成自己的域名
    charset utf-8;
    if ( $scheme = 'http' ) {
       return 302 https://docker.hasten.com/;# 需要修改成自己的域名
    }
    #设置证书部分
    ssl_certificate ssl/fullchain.pem;
    ssl_certificate_key ssl/privkey.pem;
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
        location / {
                    # Docker hub 的官方镜像仓库
                    proxy_pass https://registry-1.docker.io;  
                    proxy_set_header Host registry-1.docker.io;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header X-Forwarded-Proto $scheme;  
                    # 关闭缓存             
                    proxy_buffering off;
                    # 转发认证相关
                    proxy_set_header Authorization $http_authorization;
                    proxy_pass_header  Authorization;
                    # 对 upstream 状态码检查,实现 error_page 错误重定向
                    proxy_intercept_errors on;
                    recursive_error_pages on;
                    # 根据状态码执行对应操作,以下为381、302、387状态码都会触发
                    error_page 301 302 307 = @handle_redirect;
        }
        location @handle_redirect {
                    resolver 1.1.1.1;
                    set $saved_redirect_location '$upstream_http_location';
                    proxy_pass $saved_redirect_location;
        }
}
systemctl restart nginx 
systemctl enable nginx.servic

3.2镜像下载加速器配置

方法1
[root@localhost ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx #这里提示地址为library/nginx那么使用自己的加速器需要添加前缀,不同的镜像地址该部分内容不一样
确定镜像后缀以后使用以下命令进行镜像拉取
docker pull docker.hasten.com/library/nginx 

方法2
vim /etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://docker.hasten.com"
    ],
}
systemctl  daemon-reload
systemctl  restart docker
docker pull nginx #使用正常命令拉取镜像

上述三种方式应该足以应付你获取镜像的各种场景,有任何问题欢迎留言交流

完结 撒花~