为 Docker 容器设置代理及环境变量的教程

在本教程中,我们将深入探讨如何为 Docker 容器设置代理及环境变量。我们将使用 Alpine Linux 作为基础环境,并特别针对在 NAS 上运行的 Docker。

📖 目录

  1. 确定 Docker 容器环境
  2. APK 镜像源的修改
  3. 为 Docker 容器设置代理
  4. NAS 中的 Docker 管理
  5. 设置容器启动时自动加载的脚本

1。确定 Docker 容器环境

在 Docker 容器中运行以下命令,以查看您的操作系统版本:

1
cat /etc/os-release

定义/etc/os-release 文件为您提供有关您正在运行的操作系统版本的信息。


2。APK 镜像源的修改

如果你在 Alpine Linux 容器中感觉 apk 命令很慢,可能是因为默认的镜像源速度不佳。您可以考虑切换到其他的镜像源,例如中国的镜像源。

步骤

  1. 打开 APK 的镜像源配置文件:

    1
    vi /etc/apk/repositories
  2. 替换默认的源为中国的源:

    1
    http://mirrors.aliyun.com/alpine/v3.x/main
  3. 更新 APK 的包索引:

    1
    apk update

3。为 Docker 容器设置代理

定义:代理服务器是一个中间服务器,可以为其它计算机的网络请求提供服务。设置代理可以帮助您绕过网络限制,或加速网络请求。

步骤

  1. 在容器内设置代理环境变量:

    1
    2
    export http_proxy=http://192.168.31.247:7890
    export https_proxy=http://192.168.31.247:7890
  2. 如果您使用的是 uvicorn 命令启动应用,您可以考虑将上述代理环境变量直接加入启动命令。但这取决于您的具体应用和设置。


4。NAS 中的 Docker 管理

在某些 NAS 设备上,您可能不能直接使用 docker run 命令。在这种情况下,您需要使用 NAS 提供的界面或 API 来管理 Docker 容器。


5。设置容器启动时自动加载的脚本

如果您希望在容器启动时自动设置某些环境变量或执行其他命令,您可以考虑修改启动脚本。

步骤

  1. /etc/profile.d/ 目录下创建一个新的脚本文件,例如 setup.sh

    1
    2
    echo "export http_proxy=http://192.168.31.247:7890" > /etc/profile.d/setup.sh
    echo "export https_proxy=http://192.168.31.247:7890" >> /etc/profile.d/setup.sh
  2. 为新创建的脚本赋予执行权限:

    1
    chmod +x /etc/profile.d/setup.sh

定义/etc/profile.d/ 目录下的脚本通常会在系统启动时自动执行。


希望以上教程能够帮助您在 Docker 容器中设置代理和环境变量!🚀