Ubuntu中为curl和Docker配置代理

embedded/2025/3/16 5:48:27/

Ubuntu中为curl和Docker配置代理

在Ubuntu环境下工作时,经常需要使用代理来访问网络资源,尤其在网络受限或需要翻墙访问时。本文介绍如何分别为curl命令和Docker配置代理192.168.100.11:8000

一、curl命令代理配置

方法1:临时设置代理(仅当前命令有效)

直接使用--proxy参数:

curl --proxy http://192.168.100.11:8000 http://example.com

方法2:环境变量设置(影响当前终端会话)

设置临时环境变量,使当前会话中的所有curl请求使用代理:

export http_proxy="http://192.168.100.11:8000"
export https_proxy="http://192.168.100.11:8000"# 验证
echo $http_proxycurl http://example.com

方法3:永久配置(所有终端生效)

修改~/.bashrc~/.zshrc文件:

echo 'export http_proxy="http://192.168.100.11:8000"' >> ~/.bashrc
echo 'export https_proxy="http://192.168.100.11:8000"' >> ~/.bashrc
source ~/.bashrc

方法4:使用.curlrc单独配置

curl单独配置代理:

echo "proxy = http://192.168.100.11:8000" >> ~/.curlrc

二、Docker代理配置

Docker代理配置包括Docker守护进程(下载镜像等)、Docker客户端命令、以及容器内部网络访问。

1. 配置Docker守护进程

Docker下载镜像或构建镜像时可能需要代理:

  • 创建并编辑配置文件:
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
  • 添加内容:
[Service]
Environment="HTTP_PROXY=http://192.168.100.11:8000"
Environment="HTTPS_PROXY=http://192.168.100.11:8000"
Environment="NO_PROXY=localhost,127.0.0.1"
  • 重新加载并重启Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker# 验证
systemctl show --property=Environment docker

2. 配置Docker客户端

影响Docker CLI命令(如docker builddocker pull):

  • 编辑配置文件:
mkdir -p ~/.docker
nano ~/.docker/config.json
  • 添加以下内容:
{"proxies": {"default": {"httpProxy": "http://192.168.100.11:8000","httpsProxy": "http://192.168.100.11:8000","noProxy": "localhost,127.0.0.1"}}
}
  • 验证:
docker info | grep -i proxy

3. Docker容器内代理设置

容器默认不会继承宿主机的代理设置,有以下方式:

运行时临时指定:
docker run -e HTTP_PROXY="http://192.168.100.11:8000" \-e HTTPS_PROXY="http://192.168.100.11:8000" \-it ubuntu bash
Dockerfile内设置:
dockerfile">ENV HTTP_PROXY="http://192.168.100.11:8000"
ENV HTTPS_PROXY="http://192.168.100.11:8000"
ENV NO_PROXY="localhost,127.0.0.1"
全局设置(Docker CLI配置)

同Docker客户端配置,所有新容器自动使用代理。

三、测试代理是否生效

运行容器进行验证:

docker run --rm -it ubuntu env | grep -i proxy# 或docker run --rm -it ubuntu curl -I http://example.com

成功返回内容或HTTP头即为配置成功。

总结

  • 临时设置:推荐给偶尔或单次使用。
  • 永久设置:适合长期工作场景,避免重复配置。
  • Docker守护进程代理:影响镜像下载,推荐配置。
  • Docker容器代理:影响容器内部网络,视情况需要配置。

参考链接

  • curl官方文档 - 代理设置
  • Docker官方文档 - 使用代理
  • Docker官方 - 客户端代理设置

在这里插入图片描述


http://www.ppmy.cn/embedded/172979.html

相关文章

二叉树题目

二叉树每层最大值 import java.util.*;class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { val x; } }public class Solution {public List<Integer> max_num(TreeNode root) {List<Integer> result new ArrayList<>(); // 存储每…

智慧加油站小程序数据库设计文档

智慧加油站系统 - 数据库与API设计文档 1. 数据库设计 1.1 ER模型 系统的核心实体关系如下&#xff1a; 用户(User) ---< 订单(Order) ---< 加油记录(RefuelRecord)| | || | vv v …

清华北大推出的 DeepSeek 教程(附 PDF 下载链接)

清华和北大分别都有关于DeepSeek的分享文档&#xff0c;内容非常全面&#xff0c;从原理和具体的应用&#xff0c;大家可以认真看看。 北大 DeepSeek 系列 1&#xff1a;提示词工程和落地场景.pdf  北大 DeepSeek 系列 2&#xff1a;DeepSeek 与 AIGC 应用.pdf  清华 Deep…

MindGYM:一个用于增强视觉-语言模型推理能力的合成数据集框架,通过生成自挑战问题来提升模型的多跳推理能力。

2025-03-13&#xff0c;由中山大学和阿里巴巴集团的研究团队提出了MindGYM框架&#xff0c;通过合成自挑战问题来增强视觉-语言模型&#xff08;VLMs&#xff09;的推理能力。MindGYM框架通过生成多跳推理问题和结构化课程训练&#xff0c;显著提升了模型在推理深度和广度上的表…

docker拉取 sentinel 并启动

拉取镜像 docker pull bladex/sentinel-dashboard:latest # 默认拉取最新版启动镜像 访问 账号 密码都是默认的 sentinel

HAL库STM32常用外设—— CAN通信(一)

文章目录 一、CAN是什么&#xff1f;1.1 CAN应用场景1.2 CAN通信优势 二、CAN基础知识介绍2.1 CAN总线结构2.2 CAN总线特点2.2.1 CAN总线的数据传输特点2.2.2 位时序和波特率 2.3 CAN位时序和波特率2.3 CAN物理层2.3.1 CAN 物理层特性2.3.2 CAN 收发器芯片介绍 2.4 CAN协议层2.…

JAVA字符串与正则表达式

文章目录 写在前面1、String1.1、String底层实现1.2、str"abc"和new String("abc")的区别1.3、使用拼接字符串1.4、如何使用String.intern节约内存1.5、分割字符&#xff0c;split()和indexOf()用哪个 2、正则表达式2.1、DFA和NFA2.2、怎么减少回溯? 写在…

微店平台商品关键字搜索接口调用指南:Python代码实现与实战解析

一、接口概述 微店开放平台提供商品搜索API接口&#xff0c;支持通过关键字检索店铺商品信息。本接口采用RESTful风格设计&#xff0c;支持OAuth2.0认证&#xff0c;返回标准JSON格式数据。 获取key和secret 二、准备工作 注册微店开放平台开发者账号 创建应用并获取以下凭证…