Ubuntu中为curl和Docker配置代理

Ubuntu中为curl和Docker配置代理

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

一、curl命令代理配置

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

直接使用--proxy参数:

sh 复制代码
curl --proxy http://192.168.100.11:8000 http://example.com

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

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

sh 复制代码
export http_proxy="http://192.168.100.11:8000"
export https_proxy="http://192.168.100.11:8000"

# 验证
echo $http_proxy

curl http://example.com

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

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

sh 复制代码
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单独配置代理:

sh 复制代码
echo "proxy = http://192.168.100.11:8000" >> ~/.curlrc

二、Docker代理配置

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

1. 配置Docker守护进程

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

  • 创建并编辑配置文件:
sh 复制代码
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
  • 添加内容:
ini 复制代码
[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:
sh 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

# 验证
systemctl show --property=Environment docker

2. 配置Docker客户端

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

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

3. Docker容器内代理设置

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

运行时临时指定:
sh 复制代码
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客户端配置,所有新容器自动使用代理。

三、测试代理是否生效

运行容器进行验证:

sh 复制代码
docker run --rm -it ubuntu env | grep -i proxy

# 或

docker run --rm -it ubuntu curl -I http://example.com

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

总结

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

参考链接

相关推荐
zh路西法5 小时前
【navigation2全局路径更新频率修正】行为树框架的巧妙利用
linux
苏宸啊6 小时前
IPC管道
linux·c++
bush46 小时前
嵌入式linux学习记录十,定时器
linux·嵌入式
峥无6 小时前
Linux进程信号:从基础概念到内核底层原理
linux·运维·服务器·信号处理
广州灵眸科技有限公司7 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) 开发(编译)方式说明
linux·服务器·单片机·嵌入式硬件·电脑
土星云SaturnCloud7 小时前
土星云AI边缘计算SE110S系列模型部署实战-YOLOv5
服务器·人工智能·yolo·docker·边缘计算
北山有鸟7 小时前
用开发板的.config替换ubuntu中内核源码目录的.config
linux·运维·ubuntu
qq_452396237 小时前
第二十篇:《Docker 故障排查常用命令与技巧》
运维·docker·容器
jcbut7 小时前
离线安装dify 1.7
linux·运维·dify
Qiuner8 小时前
Pico 重塑Agent时代人与数据交互方式
windows·docker·ai·架构