Windows 环境
windows拉取docker镜像经常拉取不下来,目前我知道有三种方式可以处理这个问题。
- 本机挂代理下载
- 可以上外网的服务器下载后打包传回本机
- github配合阿里云docker镜像
这里我感觉使用第一个比较简单,剩下的两个方式大家可以自行搜索。
我使用的是v2rayN,先点击设置查看一下端口号。
临时生效
这种方式只是临时生效,当你关闭Cmd再次打开,代理就失效了。

使用sock5代理
1set http_proxy=socks5://127.0.0.1:108082set https_proxy=socks5://127.0.0.1:10808取消代理设置
1set http_proxy=2set https_proxy=测试是否生效
1curl www.google.com # 有返回值说明代理成功长期生效
右键此电脑 -> 属性 -> 高级系统设置 -> 环境变量 ,在系统环境中,添加如下两个环境变量。

Linux环境
我使用的arch系统,代理软件是qv2ray,大家的配置方式可能不同,但也是大同小异,本文重点参考Arch Wiki Proxy。
先qv2ray中查看,本地代理端口:
临时生效
1export http_proxy=http://10.203.0.1:5187/2export https_proxy=$http_proxy临时取消代理
1export http_proxy=2export https_proxy=脚本生效(推荐使用)
vim ~/.bashrc
复制粘贴如下代码
1function proxy_on() {2    export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"3
4    if (( $# > 0 )); then5        valid=$(echo $@ | sed -n 's/\([0-9]\{1,3\}.\?\)\{4\}:\([0-9]\+\)/&/p')6        if [[ $valid != $@ ]]; then7            >&2 echo "Invalid address"8            return 19        fi10        local proxy=$111        export http_proxy="$proxy" \12               https_proxy=$proxy \13               ftp_proxy=$proxy \14               rsync_proxy=$proxy15        echo "Proxy environment variable set."28 collapsed lines
16        return 017    fi18
19    echo -n "username: "; read username20    if [[ $username != "" ]]; then21        echo -n "password: "22        read -es password23        local pre="$username:$password@"24    fi25
26    echo -n "server: "; read server27    echo -n "port: "; read port28    local proxy=$pre$server:$port29    export http_proxy="$proxy" \30           https_proxy=$proxy \31           ftp_proxy=$proxy \32           rsync_proxy=$proxy \33           HTTP_PROXY=$proxy \34           HTTPS_PROXY=$proxy \35           FTP_PROXY=$proxy \36           RSYNC_PROXY=$proxy37}38
39function proxy_off(){40    unset http_proxy https_proxy ftp_proxy rsync_proxy \41          HTTP_PROXY HTTPS_PROXY FTP_PROXY RSYNC_PROXY42    echo -e "Proxy environment variable removed."43}没有username和password可以不填。
source ~/.bashrc,重新跑一下脚本。
直接在命令行中输入proxy_on即可配置开启代理,proxy_off关闭代理。
切换sudo命令时,会因为环境变量切换导致代理失效,解决办法如下:
在/etc/sudoers.d/05_proxy中添加一行:
1Defaults env_keep += "*_proxy *_PROXY" 
  
 