1. Docker 守护进程代理 (docker pull)

    mkdir -p /etc/systemd/system/docker.service.d
    sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf > /dev/null <<'EOF'
    [Service]
    Environment="HTTP_PROXY=http://127.0.0.1:7890"
    Environment="HTTPS_PROXY=http://127.0.0.1:7890"
    Environment="NO_PROXY=localhost,127.0.0.1"
    EOF
    systemctl daemon-reload
    systemctl restart docker
    
  2. Image 构建代理

    docker image build \
        --build-arg HTTP_PROXY="http://127.0.0.1:7890" \
        --build-arg HTTPS_PROXY="http://127.0.0.1:7890" \
        --build-arg NO_PROXY="localhost,127.0.0.1" \
        -f Dockerfile -t my-app:v1.0 .
    
  3. Container 运行环境代理 (docker run)

    1. 命令参数(推荐,单次生效)
      1. docker run
        docker container run -it \
            -e HTTP_PROXY="http://127.0.0.1:7890" \
            -e HTTPS_PROXY="http://127.0.0.1:7890" \
            -e NO_PROXY="localhost,127.0.0.1" \
            --rm \
            --name=alma \
            almalinux:latest /bin/bash
        
      2. docker compose
        services:
            alma:
            image: almalinux:latest
            container_name: alma
            environment:
            - HTTP_PROXY=http://127.0.0.1:7890
            - HTTPS_PROXY=http://127.0.0.1:7890
            - NO_PROXY=localhost,127.0.0.1
            stdin_open: true   # 对应 -i
            tty: true          # 对应 -t
            restart: "no"
        
    2. 配置文件 (不常用)
      位置:~/.docker/config.json(针对当前用户)
      {
          "proxies": {
              "default": {
                  "httpProxy": "http://127.0.0.1:7890",
                  "httpsProxy": "http://127.0.0.1:7890",
                  "noProxy": "http://127.0.0.1:7890"
              }
          }
      }