使用Docker的过程中,因为网络原因,通常需要使用 HTTP/HTTPS 代理来加速镜像拉取、构建和使用。下面是常见的三种场景。

 
为 dockerd 设置网络代理

"docker pull" 命令是由 dockerd 守护进程执行。而 dockerd 守护进程是由 systemd 管理。因此,如果需要在执行 "docker pull" 命令时使用 HTTP/HTTPS 代理,需要通过 systemd 配置。

  •  

    为 dockerd 创建配置文件夹。

 

复制

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

    为 dockerd 创建 HTTP/HTTPS 网络代理的配置文件,文件路径是 /etc/systemd/system/docker.service.d/http-proxy.conf 。并在该文件中添加相关环境变量。

 

复制

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080/"
Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
  •  

    刷新配置并重启 docker 服务。

 

复制

sudo systemctl daemon-reload
sudo systemctl restart docker
 
为 docker 容器设置网络代理

在容器运行阶段,如果需要使用 HTTP/HTTPS 代理,可以通过更改 docker 客户端配置,或者指定环境变量的方式。

  •  

    更改 docker 客户端配置:创建或更改 ~/.docker/config.json,并在该文件中添加相关配置。

 

复制

{
"proxies":
{
"default":
{
"httpProxy": "http://proxy.example.com:8080/",
"httpsProxy": "http://proxy.example.com:8080/",
"noProxy": "localhost,127.0.0.1,.example.com"
}
}
}
  •  

    指定环境变量:运行 "docker run" 命令时,指定相关环境变量。

 
环境变量 docker run 示例

HTTP_PROXY

--env HTTP_PROXY="http://proxy.example.com:8080/"

HTTPS_PROXY

--env HTTPS_PROXY="http://proxy.example.com:8080/"

NO_PROXY

--env NO_PROXY="localhost,127.0.0.1,.example.com"

 
为 docker build 过程设置网络代理

在容器构建阶段,如果需要使用 HTTP/HTTPS 代理,可以通过指定 "docker build" 的环境变量,或者在 Dockerfile 中指定环境变量的方式。

  •  

    使用 "--build-arg" 指定 "docker build" 的相关环境变量

 

复制

docker build \
--build-arg "HTTP_PROXY=http://proxy.example.com:8080/" \
--build-arg "HTTPS_PROXY=http://proxy.example.com:8080/" \
--build-arg "NO_PROXY=localhost,127.0.0.1,.example.com" .
  •  

    在 Dockerfile 中指定相关环境变量

 
环境变量 Dockerfile 示例

HTTP_PROXY

ENV HTTP_PROXY="http://proxy.example.com:8080/"

HTTPS_PROXY

ENV HTTPS_PROXY="http://proxy.example.com:8080/"

NO_PROXY

ENV NO_PROXY="localhost,127.0.0.1,.example.com"

[Service]
Environment="HTTP_PROXY=http://192.168.50.xx:7890/"
Environment="HTTPS_PROXY=http://192.168.50.xx:7890/"
Environment="NO_PROXY=localhost,127.0.0.1,.nvxclouds.com,192.168.0.0/16"

配置 HTTP/HTTPS 网络代理的更多相关文章

  1. 使用 FiddlerCore 自定义 HTTP/HTTPS 网络代理

    Fiddler 是个很好用的网络请求查看与调试工具,还可以写插件来扩展其功能. Fiddler 插件开发,使用 WPF 作为 UI 控件 - J.晒太阳的猫 - 博客园 但部分场景下,需要自定义很多网 ...

  2. git使用,Git的skil-map,git配置http/https/socks5代理

    . 检出.克隆库: git clone git://git.openwrt.org/openwrt.git 2. git查看某个文件的修改历史 git log --pretty=oneline 文件名 ...

  3. 下载编译安装Apache HTTP Server 2.4.23以及配置HTTP/HTTPS反向代理

    http://blog.csdn.net/gangchengzhong/article/details/52910225 [注意,在编译make时出现的错误并不是文章中说的openssl的版本问题,而 ...

  4. Android开发中网络代理设置实用总结

    一.背景 进行Android项目开发时,跟网络代理基本上天天都在打交道.通常情况下,至少有三个场景中经常用到网络代理: 1,经常通过Chrome访问Google等国外的技术网站,如通过SS工具等: 2 ...

  5. centos 桥接配置 设置网络代理 lnmp搭建

    一.桥接配置 centos设置  编辑->虚拟网络编辑器->桥接模式->还原默认设置 虚拟机->设置->网络适配器->桥接 cd /etc/sysconfig/ne ...

  6. Docker的三种网络代理配置

    开源Linux 长按二维码加关注~ 上一篇:IPv6技术白皮书(附PDF下载) 有时因为网络原因,比如公司NAT,或其它啥的,需要使用代理.Docker的代理配置,略显复杂,因为有三种场景.但基本原理 ...

  7. windows:nginx配置http、https反向代理

    一.下载 Windows 版本的 nginx nnginx下载:http://nginx.org/en/download.html 推荐稳定版本.下载完成后,解压得到 nginx-1.14.0 ,我把 ...

  8. Docker网络代理设置

    背景 在一些实验室环境,服务器没有直接连接外网的权限,需要通过网络代理.我们通常会将网络代理直接配置在/etc/environment./etc/profile之类的配置文件中,这对于大部分操作都是可 ...

  9. Nginx设置Https反向代理,指向Docker Gitlab11.3.9 Https服务

    目录 目录 1.GitLab11.3.9的安装 2.域名在阿里云托管,申请免费的1年证书 3.Gitlab 的 https 配置 4.Nginx 配置 https,反向代理指向 Gitlab 配置 目 ...

  10. 手头没证书,如何给https做代理?Nginx TCP转发

    线上的一个海外充值接口(https)经常因我朝网络问题中断,想借助hk的机器做个https反向代理又没证书. 一开始 一开始想到的办法是借助Nginx的tcp转发进行代理: 编译NGINX时加入 -- ...

随机推荐

  1. LinearRegression线性回归

    1.LinearRegression将方程分为两个部分存放,coef_存放回归系数,intercept_则存放截距,因此要查看方程,就是查看这两个变量的取值. 2.回归系数(regression co ...

  2. markdown的html优雅使用语法(2024/10/10guixiang原创)

    一:图片部分 第一范式 图 2 全字段排序 <center> <img style="border-radius: 0.3125em; box-shadow: 0 2px ...

  3. google 搜索技巧

    size qq.com inurl : size 指定网站 inurl 这个网站的指定内容 filetype 指定搜索的文件类型

  4. springboot 启动慢分析

    JVM参数设置 1. 生成GC日志并网站在线分析 生成gc日志命令 -Xloggc:./gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps 在线分析网站 ...

  5. 基于.NET8 + Vue/UniApp前后端分离的快速开发框架,开箱即用!

    前言 今天大姚给大家分享一款基于.NET8 + Vue/UniApp前后端分离的快速开发框架,开箱即用:ZR.Admin.NET. 开源免费(基于MIT License开源协议).代码量少.学习简单. ...

  6. 让容器通信变得简单:深度解析 Containerd 中的 CNI 插件

    作者:尹珉,KubeSphere Ambassador & contributor,KubeSphere 社区用户委员会杭州站站长. 引言 在上一篇文章中,我们详细讨论了 Kubernetes ...

  7. 基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

    方案背景和目的 KubeSphere 自发布以来已有 2 年之久,从 2.1.0 版本至目前最新版本 3.3.开发人员的编译构建都基于环境平台的 DevOps 功能(底层是 jenkins)实现,如果 ...

  8. linux 基础(5)文件的打包和压缩

    文件的压缩是非常重要和常见的操作. 在 Windows 下,zip 和 rar 经常使用的压缩软件,框选一堆文件,右键用 WinRAR 就可以完成压缩.不过在 linux 下通常不这么做.一是因为 l ...

  9. c++时间形式转换

    https://cplusplus.com/reference/ctime/ 先放上官方文档. ctime类里,有很多转换时间格式的方法,下面只举例将UTC时间,转换为字符串的代码. ‌‌Unix时间 ...

  10. Linux 练习

    目录 练习一 练习2 练习一 分析日志t.log(访问量),将各个ip地址截取,并统计出现次数,并按从大到小排序(腾讯) 每行格式:http: //192.168.200.30/index1.html ...