当前位置: 首页 > article >正文

Docker 配置 HTTP 和 HTTPS 网络代理

前言

在内网环境中,为了实现全局代理上网,Linux 系统通常通过修改 .bashrc/etc/profile 等文件,设置 HTTP 和 HTTPS 代理。这种方式可以为大多数应用提供代理支持,但 Docker 并不会自动读取系统的环境变量,因此需要单独为其配置代理。

以下是为 Docker 添加 HTTP 和 HTTPS 代理的详细步骤:


1. 创建代理配置文件目录

首先,需要为 Docker 服务创建一个配置目录。执行以下命令:

mkdir -p /etc/systemd/system/docker.service.d

2. 新增代理配置文件

在目录 /etc/systemd/system/docker.service.d 下创建一个新的配置文件 proxy.conf

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

添加以下内容:

[Service]
Environment="HTTP_PROXY=http://192.168.1.100:3128/"
Environment="HTTPS_PROXY=http://192.168.1.100:3128/"
Environment="NO_PROXY=localhost,127.0.0.1,192.168.1.0/24,.example.com"
  • HTTP_PROXY:设置 HTTP 代理的地址,格式为 http://proxy_address:port,例如 http://192.168.1.100:3128/
  • HTTPS_PROXY:设置 HTTPS 代理的地址,格式与 HTTP 代理相同。
  • NO_PROXY:指定不使用代理的地址,多个地址用逗号分隔,例如 localhost,127.0.0.1,也可以加入内网镜像源的地址,支持 CIDR 格式和域名通配符,如 .example.com

示例:假设你有一个 Squid 代理服务器运行在内网 IP 192.168.1.100 的 3128 端口,并希望通过代理访问外网,同时直连内网地址 192.168.1.0/24 和子域名 .example.com,上述配置即为理想设置。


3. 重新加载配置

设置完成后,需要重新加载 systemd 的配置并重启 Docker 服务:

# 重新加载 systemd 配置
systemctl daemon-reload

# 重启 Docker 服务
systemctl restart docker

4. 验证代理是否生效

执行以下命令,检查 Docker 是否正确读取了代理配置:

docker info | grep -i proxy

如果代理配置正确,你会看到类似以下的输出:

 HTTP Proxy: http://192.168.1.100:3128/
 HTTPS Proxy: http://192.168.1.100:3128/
 No Proxy: localhost,127.0.0.1,192.168.1.0/24,.example.com

5. 测试镜像拉取

拉取一个镜像,验证代理是否生效:

docker pull alpine

如果镜像能够正常拉取,说明代理配置已成功生效。


常见问题与解决方法

1. 配置不生效

  • 确保代理地址和端口正确。
  • 检查 proxy.conf 的语法是否正确,尤其是引号的使用。
  • 确保 Docker 服务已经被正确重启。

2. 某些地址不需要代理

  • NO_PROXY 中添加内网地址或特殊的域名。
  • 确保 NO_PROXY 字段中的地址格式正确,例如 .example.com 匹配所有子域名。

通过以上步骤,你可以在内网环境下为 Docker 配置代理,从而解决拉取镜像时无法连接外网的问题。代理配置后,Docker 将能够顺畅地访问外网,同时也可以通过 NO_PROXY 字段保留对内网地址的直连。


http://www.kler.cn/a/407729.html

相关文章:

  • 《Qt Creator:人工智能时代的跨平台开发利器》
  • 华三(H3C)T1020 IPS服务器硬件监控指标解读
  • JDBC编程---Java
  • FPGA实现串口升级及MultiBoot(九)BPI FLASH相关实例演示
  • JavaWeb之综合案例
  • Java开发经验——开发常用工具类
  • 【MATLAB蓝牙定位代码】三维平面定位设计,通过N个蓝牙锚点实现对未知位置的精准定位
  • (STM32)ADC驱动配置
  • [RabbitMQ] 重试机制+TTL+死信队列
  • vue3---watch监听
  • 什么是沙箱(Sandbox)技术
  • 图像处理-简单的图像操作
  • # linux 清理指定目录下,指定时间的历史文件
  • ssm旅游推荐系统的设计与开发
  • Oracle SQL优化③——表的连接方式
  • 【数据结构-队列】力扣225. 用队列实现栈
  • 人工智能之机器学习5-回归算法1【培训机构学习笔记】
  • 【STM32】启动配置和自动串口下载
  • 性能监控利器:Ubuntu 22.04 上的 Zabbix 安装与配置指南
  • windows实现VNC连接ubuntu22.04服务器
  • Java 基础知识 (集合框架 + 并发编程 + JVM 原理 + 数据结构与算法)
  • 2023年下半年信息安全工程师《案例分析》真题答案(2)
  • 移远通信推出全新5G RedCap模组RG255AA系列,以更高性价比加速5G轻量化大规模商用
  • 中小企业人事管理自动化:SpringBoot实践
  • Oracle分析表和索引
  • 微信小程序添加图片验证码