国内Docker镜像无法使用解决方案

本文介绍的是我自己的解决方案,因为我有两台云服务器,一台香港的,一台硅谷的,所以还是可以正常访问到外网的,只不过需要对现有的内网服务器进行配置,自己使用的电脑就不说了,有VPN直接使用,下面主要介绍在服务器环境下如何配置,我家里的服务器是Centos7,所以就以它为例。
安装 shadowsocks-libev
如果你的服务器是 Ubuntu系统的话直接可以通过命令安装,下面我把它的官方GitHub放到下面。 shadowsocks-libev github 在 Centos 中我们需要先添加一下yum源,然后再通过yum命令去安装,依次执行下面的三条命令。
cd /etc/yum.repos.d/
yum.repos.d]# curl -O https://copr.fedorainfracloud.org/coprs/librehat/shadowsocks/repo/epel-7/librehat-shadowsocks-epel-7.repo
yum install -y shadowsocks-libev
验证安装
完成安装后会有这些命令可以使用:ss-local, ss-manager, ss-nat, ss-redir, ss-server, ss-tunnel。因为我们此时是想作为客户端使用,所以只需要关注ss-local命令。我们直接执行ss-local
命令,我的直接运行成功。如果抱错:ss-local: error while loading shared libraries: libmbedcrypto.so.0: cannot open shared object file: No such file or directory,则使用root身份执行下面的命令:
cd /usr/lib64
ln -s libmbedcrypto.so.1 libmbedcrypto.so.0
添加配置文件
安装完后它默认会在/etc/shadowsocks-libev/下面创建了一个名为config.json
的文件。如下:
{
"server": "example.zzz.buzz",
"server_port": 10443,
"local_port": 1080,
"password": "zzz.buzz",
"method": "aes-256-cfb",
"mode": "tcp_and_udp",
"timeout": 600
}
server: 必填项,对应填入服务端的IP就可以
server_port: 必填项,对应服务端暴露出允许连接的端口号
local_port: 必填项,本地 shadowsocks 客户端 SOCKS5 代理要监听的端口
password: 必填项,对应服务端对应该端口设置的密码
method: 必填项,对应服务端的加密方式
mode: 选填,默认tcp_only
timeout: 选填,不活动时保持的时间,默认60秒
启动客户端
启动客户端执行下面的命令
systemctl enable --now shadowsocks-libev-local
systemctl start shadowsocks-libev-local
执行完上面的命令后同时也设置了开机自启,至此完成了所有的配置,下面看看状态是否成功。
systemctl status shadowsocks-libev-local
如果要查看所有日志可以通过下面的命令
journalctl -u shadowsocks-libev-local
配置Docker Socks5 代理
启动后如果我们直接拉取发现还是不行,这是因为docker没有配置代理的问题,我们本地的1080是socks5协议,因此我们接下来为Docker配置一下代理,这样docker的所有网络请求就会通过我们的代理。
创建配置文件
首先创建文件夹 /etc/systemd/system/docker.service.d ,如果有的话就不用了,然后在文件夹下创建一个 http-proxy.conf 文件,名称无所谓,主要以.conf为后缀就行。然后在里面配置如下内容:
[Service]
Environment="HTTP_PROXY=socks5://127.0.0.1:1080"
Environment="HTTPS_PROXY=socks5://127.0.0.1:1080"
重启生效
systemctl daemon-reload
systemctl restart docker
验证效果
docker pull openjdk:17-jdk-alpine
下面是拉取截图
Subscribe to my newsletter
Read articles from 胡海龙 directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
