Docker配置适用于Windows/Mac和LinuxHTTP/HTTPS代理多种方式原创文章

玩技站长
玩技站长
玩技站长
管理员, Keymaster
10824
文章
669
评论
运维笔记评论94字数 1130阅读3分46秒阅读模式

 

在本指南中,详细讲解了如何为Docker配置HTTP和HTTPS代理,包括在Linux、Windows和Mac环境中的配置方法。无论是编辑配置文件、使用环境变量还是配置Docker Compose,我们都提供了清晰的步骤和示例,帮助您轻松设置和管理代理。文章源自玩技e族-https://www.playezu.com/831770.html

为 Docker 配置代理可以通过多种方法实现,具体取决于你需要配置的是 Docker Daemon 还是 Docker CLI。以下是几种常见的方法,包括如何在不同环境中配置 HTTP/HTTPS 代理。文章源自玩技e族-https://www.playezu.com/831770.html

Docker配置适用于Windows/Mac和LinuxHTTP/HTTPS代理多种方式插图文章源自玩技e族-https://www.playezu.com/831770.html

1. 配置 Docker Daemon

方法一:编辑 Docker Daemon 配置文件

  1. 编辑配置文件打开 Docker Daemon 的配置文件 /etc/docker/daemon.json(如果不存在可以创建它):
    sudo nano /etc/docker/daemon.json
  2. 添加代理设置在配置文件中添加代理设置,如下所示:
    [Service]
    Environment="HTTP_PROXY=http://username:password@proxy-server:port"
    Environment="HTTPS_PROXY=http://username:password@proxy-server:port"
    Environment="NO_PROXY=localhost,127.0.0.1"
    • http-proxyhttps-proxy 指定 HTTP 和 HTTPS 代理地址。
    • no-proxy 用于列出不需要代理的地址。

    示例文章源自玩技e族-https://www.playezu.com/831770.html

    [Service]
    Environment="HTTP_PROXY=http://user:pass@proxy.example.com:8080"
    Environment="HTTPS_PROXY=http://user:pass@proxy.example.com:8080"
    Environment="NO_PROXY=localhost,127.0.0.1"
  3. 重新启动 Docker 服务使配置生效,重启 Docker 服务:
    sudo systemctl restart docker

方法二:使用 Docker 服务的环境变量

如果你使用的是 Docker 的系统服务(例如 systemd),你可以直接在 Docker 服务的环境文件中设置代理。文章源自玩技e族-https://www.playezu.com/831770.html

  1. 编辑 Docker 服务文件打开或创建 /etc/systemd/system/docker.service.d/http-proxy.conf 文件(如果目录不存在可以创建它):
    sudo mkdir -p /etc/systemd/system/docker.service.d 
    sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
  2. 添加代理设置在文件中添加以下内容:
    [Service] 
    Environment="HTTP_PROXY=http://username:password@proxy-server:port" Environment="HTTPS_PROXY=http://username:password@proxy-server:port" Environment="NO_PROXY=localhost,127.0.0.1"

    示例文章源自玩技e族-https://www.playezu.com/831770.html

    [Service] Environment="HTTP_PROXY=http://user:pass@proxy.example.com:8080" Environment="HTTPS_PROXY=http://user:pass@proxy.example.com:8080" Environment="NO_PROXY=localhost,127.0.0.1"
  3. 重新加载服务配置并重启 Docker
    sudo systemctl daemon-reload sudo systemctl restart docker

2. 配置 Docker CLI 使用 HTTP/HTTPS 代理

如果你只需要为 Docker CLI 设置代理,你可以配置环境变量。以下方法适用于使用 bashzsh 或其他 shell 的情况。文章源自玩技e族-https://www.playezu.com/831770.html

  1. 设置环境变量在 shell 中设置 HTTP 和 HTTPS 代理环境变量:
    export HTTP_PROXY="http://username:password@proxy-server:port" 
    export HTTPS_PROXY="http://username:password@proxy-server:port"
    export NO_PROXY="localhost,127.0.0.1"

    示例文章源自玩技e族-https://www.playezu.com/831770.html

    export HTTP_PROXY="http://user:pass@proxy.example.com:8080" 
    export HTTPS_PROXY="http://user:pass@proxy.example.com:8080" export NO_PROXY="localhost,127.0.0.1"
  2. 持久化设置为了在每次启动 shell 时自动设置这些变量,将它们添加到你的 shell 配置文件中,例如 .bashrc.zshrc
    echo 'export HTTP_PROXY="http://user:pass@proxy.example.com:8080"' >> ~/.bashrc 
    echo 'export HTTPS_PROXY="http://user:pass@proxy.example.com:8080"' >> ~/.bashrc 
    echo 'export NO_PROXY="localhost,127.0.0.1"' >> ~/.bashrc

    然后,加载配置:文章源自玩技e族-https://www.playezu.com/831770.html

    source ~/.bashrc

3. 配置 Docker Compose 使用 HTTP/HTTPS 代理

如果你使用 Docker Compose,你可以为 Compose 文件配置代理:文章源自玩技e族-https://www.playezu.com/831770.html

  1. docker-compose.yml 文件中配置代理docker-compose.yml 文件的 services 部分,设置代理环境变量:
    version: '3'
    services:
    web:
    image: nginx
    environment:
    - HTTP_PROXY=http://username:password@proxy-server:port
    - HTTPS_PROXY=http://username:password@proxy-server:port
    - NO_PROXY=localhost,127.0.0.1

4. 配置 Docker for Windows 或 Docker for Mac 使用 HTTP/HTTPS 代理

Docker for Windows

  1. 打开 Docker 设置右键点击系统托盘的 Docker 图标,选择 “Settings” 。
  2. 配置代理在 “Settings” 对话框中,选择 “Resources” -> “Proxies” 选项卡。然后在 HTTP 和 HTTPS 代理字段中输入你的代理服务器信息。
  3. 应用并重启 Docker保存设置并重启 Docker。

Docker for Mac

  1. 打开 Docker 设置点击 Docker 图标,然后选择 “Preferences” 。
  2. 配置代理在 “Preferences” 对话框中,选择 “Resources” -> “Proxies” 选项卡。然后输入你的代理服务器信息。
  3. 应用并重启 Docker保存设置并重启 Docker。

通过上述方法,你可以根据你的需求配置 Docker 使用 HTTP/HTTPS 代理。确保在配置过程中处理好敏感信息,并遵循最佳安全实践。

3. 使用 docker run 命令添加代理环境变量

在运行 Docker 容器时,你可以使用 -e 选项来设置环境变量。以下是一个示例,展示了如何添加 HTTP/HTTPS 代理配置:

docker run -e HTTP_PROXY="http://username:password@proxy-server:port" \
           -e HTTPS_PROXY="http://username:password@proxy-server:port" \
           -e NO_PROXY="localhost,127.0.0.1" \
           -it your-image-name

示例

假设你的代理服务器是 proxy.example.com,端口是 8080,用户名是 user,密码是 pass,要运行一个基于 nginx 的容器,可以使用以下命令:

docker run -e HTTP_PROXY="http://user:pass@proxy.example.com:8080" \
           -e HTTPS_PROXY="http://user:pass@proxy.example.com:8080" \
           -e NO_PROXY="localhost,127.0.0.1" \
           -it nginx
 
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证