飞行的蜗牛

vuePress-theme-reco 极客学长    2013 - 2025
飞行的蜗牛 飞行的蜗牛

Choose mode

  • dark
  • auto
  • light
首页
分类
  • 技术杂谈
  • Database
  • Docker
  • PHP
  • 随笔杂谈
  • 前端开发
  • FunnyTools
  • Jekyll
  • 读书笔记
  • Java
  • SpringBoot
  • 区块链技术
  • IPFS
  • C/C++
  • Filecoin
  • Golang
  • Sharding-JDBC
  • 分布式存储
  • Lotus-源码系列
  • Lotus
  • 框架源码系列
  • Spring-源码系列
  • AI
  • ChatGPT
  • Stable Diffusion
  • DeepSeek-R1
  • DeepSeek-V3
标签
时间抽
关于作者
开源项目
GeekAI (opens new window)
author-avatar

极客学长

154

文章

151

标签

首页
分类
  • 技术杂谈
  • Database
  • Docker
  • PHP
  • 随笔杂谈
  • 前端开发
  • FunnyTools
  • Jekyll
  • 读书笔记
  • Java
  • SpringBoot
  • 区块链技术
  • IPFS
  • C/C++
  • Filecoin
  • Golang
  • Sharding-JDBC
  • 分布式存储
  • Lotus-源码系列
  • Lotus
  • 框架源码系列
  • Spring-源码系列
  • AI
  • ChatGPT
  • Stable Diffusion
  • DeepSeek-R1
  • DeepSeek-V3
标签
时间抽
关于作者
开源项目
GeekAI (opens new window)
  • 一文讲透如何给Docker设置代理

    • Docker 程序安装
      • 通过代理拉取或者推送国外镜像
        • Docker 容器中使用代理
          • 参考文献

          一文讲透如何给Docker设置代理

          vuePress-theme-reco 极客学长    2013 - 2025

          一文讲透如何给Docker设置代理


          极客学长 2024-11-01 0 Docker 代理 proxy

          今日分享

          在商业的世界里,价值和需求是一体两面的,你自己认为它有价值,不代表它有商业价值。

          符合对方的需求,对方愿意为它付费,它才具有商业价值。

          所以,做出有价值的东西和做出具有商业价值的东西,是两回事。

          Docker相关的网络环境问题一直是困扰开发者的难题,尤其是近半年以来,拉取 Docker 官方镜像仓库的镜像都变得非常麻烦,运气好的话,超时十来次之后你也许能拉取下来,运气不好的话,你一晚上都下载不完一个镜像。

          本文介绍如何通过设置代理的方式,解决 Docker 使用过程遇到的各种网络问题。

          注意:

          本文默认你的本机电脑已经具备科学上网的环境了。如果你还不知道如何科学上网,那么请先去看看其他的入门文章。

          # Docker 程序安装

          如果你使用的是 windows 或者 Mac 系统,那么你通常可以直接通过浏览器去下载安装文件,然后直接安装就行。

          但是如果你是想在Linux服务器上安装 Docker,通常你需要通过终端命令行来安装,那么你会遇到第一问题,没法更新到 Docker 的软件源,大量出现超时的错误,从而导致安装失败。解决方法很简单,你只需要在终端导出你的 HTTP 代理地址就好了。

          export https_proxy=http://172.22.11.200:7777
          export http_proxy=http://172.22.11.200:7777
          

          需要 172.22.11.200:7777 是你的代理主机的 IP 地址和端口。这些信息你打开你本地的代理工具就能看到,我这里以 clash 这款软件为例,进入软件主界面,选择 General 菜单就能看到。

          这里记得要打开 ALLOW LAN 开关,这样就可以允许任何主机通过内网 IP 来连接你的代理服务,否则你就只能在当前主机通过 127.0.0.1 来连接,其他机器没法连接该服务。端口你可以随便改,IP 是当前代理主机的内网IP。 如果你想给外网服务器使用,那你就需要把这个代理端口内网穿透出去,这个我后面会专门写一篇教程。

          # 通过代理拉取或者推送国外镜像

          在国内拉取 Docker 中央仓库的镜像本来就速度就一直比较慢,近期就更慢了,基本处于一个不可达的状态。当然我们可以通过设置国内一些加速镜像器来加速镜像下载。但是国内镜像不全,更新也不及时,如果你要下载的镜像国内加速器上没有的话,你最终还是要 Docker 中央仓库镜像去下载。

          此时我们可以通过给 Docker 镜像下载器配置一个代理来一劳永逸地解决问题。如果你使用的 Docker-Deskop 桌面版,那么你可以直接通过图形界面设置就好。

          如果你的 Docker 服务是跑在服务器上,那么配置会稍微复杂一些。因为 Docker 守护程序(dockerd)是在其启动环境中使用 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY 环境变量来配置 HTTP 或 HTTPS 代理行为,需要在 Docker systemd 服务文件中添加此配置。 在 daemon.json 文件或者是在系统环境变量文件中配置它们都不会使其生效。具体的配置步骤如下。

          1. 在 /etc/systemd/system 目录下创建 docker.service.d 目录:

            sudo mkdir -p /etc/systemd/system/docker.service.d
            
          2. 在该目录下创建 http-proxy.conf 文件:

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

            根据自身需要添加下面的内容并替换为实际的配置,一般只需要添加 HTTP_PROXY 和 HTTPS_PROXY:

            [Service]
            Environment="HTTP_PROXY=http://172.22.11.200:7777"
            Environment="HTTPS_PROXY=http://172.22.11.200:7777"
            Environment="NO_PROXY=localhost,127.0.0.1"
            

            注意: HTTP_PROXY 用于代理访问 http 请求,HTTPS_PROXY 用于代理访问 https 请求,如果想某个 IP或域名不走代理则配置到 NO_PROXY中。

          3. 重启 Docker 服务

            sudo systemctl daemon-reload
            sudo systemctl restart docker
            

          # Docker 容器中使用代理

          如果想在 Docker 容器中使用代理访问外部网络,可以在启动容器的时候注入环境变量即可:

          docker run --name test -e http_proxy=http://172.22.11.200:7777 -e https_proxy=http://172.22.11.200:7777 test:latest
          

          如果是通过 docker-compose 启动,则需要在 docker-compose.yaml 配置文件中增加注入环境变量,例如:

          services:
            comfyui:
              image: "test:latest"
              container_name: "test"
              restart: always
              ports:
                - "8080:8080"
              environment:
                - HTTPS_PROXY=http://172.22.11.200:7777
                - HTTP_PROXY=http://172.22.11.200:7777
          

          # 参考文献

          • https://blog.csdn.net/peng2hui1314/article/details/124267333

          本站博文如非注明转载则均属作者原创文章,引用或转载无需申请版权或者注明出处,如需联系作者请加微信: geekmaster01

          03-高效学习:使用 AI 进行对话式学习 Stable Diffusion 核心技术解读,让你秒懂的 AI 绘图模型