扔掉Docker镜像源吧,直接拉源站不香吗?

warning: 这篇文章距离上次修改已过91天,其中的内容可能已经有所变动。

由于一些他妈的(鬼知道上头又抽什么风了)原因,包括阿里镜像,中科大镜像,清华镜像,这两天各大Docker镜像源『因监管部门通知』而下架

小道消息:据说NPM/PiP之类的也难逃此厄运

该学习学习,该工作工作,既然镜像源挂了,我们直接拉源站就好了

准备工作

首先你需要一个梯子(加密代理),能上网就行,在本例中假设为监听在127.0.0.1:1081的HTTP代理

info:HTTP?
实际上,这里对新手来说会有些混淆,经常问的问题就是『HTTP代理可以代理HTTPS吗?』

这么说吧,这里的HTTP指的是『这个代理协议基于HTTP,也确实可以代理HTTP』,至于可不可以代理HTTPS嘛......具体内容在此不赘述,但如果有不支持代理HTTPs(也就是无法使用CONNECT操作)的代理,那么笔者建议你换一个

如果要安装Docker

执行以下命令,给终端挂上代理之后安装

sudo export http_proxy=http://127.0.0.1:1081
sudo export https_proxy=http://127.0.0.1:1081
curl -fsSL https://get.docker.com -o get-docker.sh
sudo chmod +x get-docker.sh
sudo ./get-docker.sh

如果要拉取镜像

据笔者所知,在支持systemctl的系统上,Docker也是用的systemctl来管理,那么这好办,执行以下命令检查配置文件位置

systemctl status docker

一般来说,输出中会有类似于/lib/systemd/system/docker.service之类的内容,代表systemctl配置文件位置。用你喜欢的文本编辑器打开这个文件,找到其中一个名为[services]的块,在他下面加入如下内容:

Environment="HTTP_PROXY=http://127.0.0.1:1081/"
Environment="HTTPS_PROXY=http://127.0.0.1:1081/"

保存退出,执行以下命令刷新配置

systemctl daemon-reload
systemctl restart docker

此时可以随便拉一个镜像试试看,如果能拉成功,就是好了

写在最后

水文章
哈哈,好水
那维莱特狂喜

(完)

none
最后修改于:2024年06月08日 14:12

添加新评论