- 作者:老汪软件技巧
- 发表时间: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 #完全免费
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 #使用正常命令拉取镜像
上述三种方式应该足以应付你获取镜像的各种场景,有任何问题欢迎留言交流
完结 撒花~