~/.docker/config.json

root@iZ2vc39e83y7kaqxlqs99yZ:~# cat ~/.docker/config.json
{
        "auths": {
                "https://index.docker.io/v1/": {}
        },
        "credsStore": "pass",
        "proxies": {
              "default": {
                      "httpProxy": "http://127.0.0.1:8118",
                      "httpsProxy": "http://127.0.0.1:8118",
                      "noProxy": "localhost,127.0.0.0/8"
              }
        }
}

/etc/default/docker

root@iZ2vc39e83y7kaqxlqs99yZ:~# cat /etc/default/docker
# Docker SysVinit configuration file

#
# THIS FILE DOES NOT APPLY TO SYSTEMD
#
#   Please see the documentation for "systemd drop-ins":
#   https://docs.docker.com/engine/admin/systemd/
#

# Customize location of Docker binary (especially for development testing).
#DOCKERD="/usr/local/bin/dockerd"

# Use DOCKER_OPTS to modify the daemon startup options.
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"

# If you need Docker to use an HTTP proxy, it can also be specified here.
#export http_proxy="http://127.0.0.1:8118/"
#export https_proxy="http://127.0.0.1:8118/"
#export no_proxy="localhost,127.0.0.0/8"

# This is also a handy place to tweak where Docker's temporary files go.
#export DOCKER_TMPDIR="/mnt/bigdrive/docker-tmp"

/etc/systemd/system/docker.service.d/http-proxy.conf

root@iZ2vc39e83y7kaqxlqs99yZ:~# cat /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:8118"
Environment="HTTPS_PROXY=http://127.0.0.1:8118"
Environment="NO_PROXY=localhost,127.0.0.1"

/usr/lib/systemd/system/docker.service.d/http-proxy.conf

root@iZ2vc39e83y7kaqxlqs99yZ:~# cat /usr/lib/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:8118"
Environment="HTTPS_PROXY=http://127.0.0.1:8118"
Environment="NO_PROXY=localhost,127.0.0.0/8"

/usr/lib/systemd/system/docker.service

默认情况下,/etc/default/docker配置了不会生效的,我们需要手动添加到docker的环境设定中,需要配置的文件是/usr/lib/systemd/system/docker.service,需要添加EnvironmentFile=-/etc/default/docker,让后在ExecStart这个配置中,添加引用的参数$DOCKER_OPTS

/etc/docker/daemon.json

root@iZ2vc39e83y7kaqxlqs99yZ:/etc/docker# cat daemon.json
{
  "proxies": {
    "default": {
      "httpProxy": "http://127.0.0.1:8118",
      "httpsProxy": "https://127.0.0.1:8118",
      "noProxy": "127.0.0.0/8"
    }
  }
}

或者改为备用镜像

root@iZ2vc39e83y7kaqxlqs99yZ:/etc/docker# cat daemon.json
{
    "registry-mirrors": [
        "https://hub.crdz.gq",
        "https://hub.littlediary.cn",
        "https://docker.1panel.live",
        "https://hub.xdark.top",
        "https://docker.m.daocloud.io",
        "https://docker.kejilion.pro",
        "https://registry.dockermirror.com",
        "https://docker.unsee.tech"
    ]
}

创建容器时使用代理

docker run -e http_proxy=http://192.168.1.100:8080 -e https_proxy=http://192.168.1.100:8080 <image-name>