使用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. 系统 内核启动期间使用ftrace

    启动阶段使能event trace 同上,配置commandline: trace_event=sched:*,timer:*,irq:* trace_buf_size=40M 有上面的实例可以知道, ...

  2. iOS关于七牛云项目分发遇到的问题小结

    在新公司做iOS开发,目前主要是用企业开发证书通过七牛云分发的形式实现app下载.在工作过程中遇到了几个相关的问题,在这里整理一下. 1.分发的ipa包在七牛云无法正常分发安装的问题 解决方案:在七牛 ...

  3. C#的排序方法 OrderBy

    using System;using System.Collections.Generic;using System.Linq;using System.Net.Http;using System.R ...

  4. MongoDB安装及配置Navicat MongoDB Tools

    一.下载MongoDB 1.下载网址:https://www.mongodb.com/try/download/community 注:本文档以Windows和msi安装为例 二.安装MongoDB ...

  5. KubeKey v3.1 发布:快速自定义离线安装包

    日前,KubeKey v3.1 正式发布.该版本主要对离线场景部署.离线包制作以及向 Kubernetes v1.24+ 升级进行了优化. KubeKey 简介 KubeKey 是 KubeSpher ...

  6. 使用 KubeSphere 部署高可用 RocketMQ 集群

    作者:老Z,云原生爱好者,目前专注于云原生运维,KubeSphere Ambassador. Spring Cloud Alibaba 全家桶之 RocketMQ 是一款典型的分布式架构下的消息中间件 ...

  7. 使用wxpython开发跨平台桌面应用,实现程序托盘图标和界面最小化及恢复处理

    在前面随笔<基于wxpython的跨平台桌面应用系统开发>介绍了一些关于wxpython开发跨平台桌面应用的总体效果,开发桌面应用,会有很多界面细节需要逐一处理,本篇随笔继续深入该主题,对 ...

  8. 5.1 Vim及其安装

    通过前面的学习我们知道,Linux 系统中"一切皆文件",因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器. 作为一名 Linux 初学者,你必须熟练掌握 Linux ...

  9. 研发LLM模型,如何用数值表示人类自然语言?

    上一篇:<人工智能--自然语言处理简介> 序言:人工智能大语言模型(LLM)如何理解人类的自然语言?这个过程的核心在于将文本转化为计算机能处理的数值形式,经过计算,最终达到对语言的理解.起 ...

  10. 题解:CF1301B Motarack's Birthday

    CF1301D Time to Run 题解 思维题. 分析 把一个格子视作一个点,每个点的度数都是偶数,所以这是一张欧拉图.而需要走遍整个方格图,可以证明只要 \(k\) 不超过 \(4nm-2n- ...