转载备份
影子 DOM(Shadow DOM)
你的 docker stop,它优雅吗? - 无糖拿铁,谢谢
清理Docker的container,image与volume · 零壹軒·笔记
Create a PyPI Mirror Site with devpi-server – SRE
优雅的终止 docker 容器 | iTimothy
Odoo 14 开发者指南第二十一章 性能优化 | Alan Hou 的个人博客
Odoo 14 开发者指南第八章 高级服务端开发技巧 | Alan Hou 的个人博客
kafka 系列:设置日志数据保存过期时间(含某个 topic)、日志策略_NIO4444-CSDN 博客_kafka 配置数据过期时间
Chromium 历史版本离线安装包 - 下载方法
怎样将 props 传递给 {this.props.children} | WebFuse
HappyBaseDoc
用户指南 — HappyBase 1.2.0 文档
安装指南 — HappyBase 1.2.0 文档
API 参考 — HappyBase 1.2.0 文档
PostgreSQL 时间转换
JS 中创建给定长度的数组
GSAP 入门 - 学习中心 - 绿袜
操作系统复习 | Happy Coding
如何理解 ip 路由和操作 linux 的路由表 - CodeAntenna
Elasticsearch 7.11 tokenizer, analyzer and filter 以及 IK 分词配置同义词、远程拓展词库 – Brave new world
podman 容器内访问 host 主机的端口 - 知识库 - BSMI KB 基础标准矿产工业
吐血总结!100 道经典 Python 面试题集锦上(附答案)
中共党史简表(1919 年 - 1949 年)
Dockerfile 详解_万 wu 皆可爱的博客 - CSDN 博客_dockerfile
为你的 Python 应用选择一个最好的 Docker 映像 | 亚马逊 AWS 官方博客
Ubuntu Server 支持中文
docker push | Docker Documentation
docker 创建本地仓库详解 (push/pull)_乱红飞的博客 - CSDN 博客_docker push 本地仓库
基于 Ubuntu 20.04 安装 Kubernetes 1.18
PostgreSQL 集群篇——PostgreSQL 的配置文件解析_51CTO 博客_postGresql
【PostgreSQL】——主从流复制_Teingi 的博客 - CSDN 博客_postgresql 主从复制
PostgreSQL: Documentation: 14: 27.4. Hot Standby
postgresql 主从复制、主从切换_偷懒的小陈的博客 - CSDN 博客_postgresql 主从
Postgres 用户、角色与权限 :: 68hub — 技术博客
中国共产党第二十次全国代表大会在京开幕 一图速览二十大报告
配置 docker 通过代理服务器拉取镜像
IPVS no destination available - Kubernetes 实践指南
Python 风格规范 — Google 开源项目风格指南
互动测试!党的二十大报告 100 题
自定义 ESlint 规则
Java 读取 OpenSSL 生成的秘钥, 进行 RSA 加解密 | 数字魔法
CSS(一)chrome 浏览器表单自动填充默认样式 - autofil_半个 GIS 半个前端的博客 - CSDN 博客
Nginx 多级代理下的真实 IP 透传 - CodeAntenna
Jenkins 环境变量
人民币金额大写规范 - 内蒙古农业大学财务处
[转]nginx 开启 websocket - 浅忆博客
ceph 创建使用 rbd
《三》配置 ceph 存储池 pool - Buxl's blog
基于 K8S 搭建 Ceph 分部署存储 – 唐玥璨 | 博客
序言 · Kubernetes 中文指南——云原生应用架构实战手册
服务器配置 - Redis 安装配置 | 灰帽子 - 任令仓的技术博客
Ubuntu 配置 sudo 命令不需要输入密码_ubuntu sudo 免密_一路向前 - 执着的博客 - CSDN 博客
修改 Docker 数据目录位置,包含镜像位置 - 腾讯云开发者社区 - 腾讯云
微服务架构实践(API Gateway)
微服务网关:从对比到选型,由理论到实践 | Java 程序员进阶之路
聊聊微服务网关
微服务网关:从对比到选型,由理论到实践
odoo 实现表分区 partition
使用 keepalived 搭建高可用服务 - 简书
业务网关的落地实践_文化 & 方法_Qunar 技术沙龙_InfoQ 精选文章
部署 Kubernetes PostgreSQL 实例 | domac 的菜园子
一套包含完整前后端的系统如何在 K8S 中部署?_k8s 前端_木讷大叔爱运维的博客 - CSDN 博客
前端安全系列(二):如何防止 CSRF 攻击? - 美团技术团队
traefik 自定义中间件 | coolcao 的小站
CSRF 原理和实战利用 - FreeBuf 网络安全行业门户
安全运维 - 如何在 Kubernetes 中使用注释对 ingress-nginx 及后端应用进行安全加固配置实践_唯一极客知识分享的技术博客_51CTO 博客
Kubernetes 进阶使用之 Helm,Kustomize
各种加密算法比较
Docker 的三种网络代理配置 · 零壹軒 · 笔记
本文档使用 MrDoc 发布
-
+
home page
Docker 的三种网络代理配置 · 零壹軒 · 笔记
> 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [note.qidong.name](https://note.qidong.name/2020/05/docker-proxy/) 2020-05-27 22:21:05 +08 字数:**1133** 标签: [Docker](https://note.qidong.name/tags/docker) 有时因为网络原因,比如公司 NAT,或其它啥的,需要使用代理。 Docker 的代理配置,略显复杂,因为有三种场景。 但基本原理都是一致的,都是利用 Linux 的`http_proxy`等环境变量。 dockerd 代理 [¶](#dockerd%e4%bb%a3%e7%90%86) ------------------------------------------ 在执行`docker pull`时,是由守护进程`dockerd`来执行。 因此,代理需要配在`dockerd`的环境中。 而这个环境,则是受`systemd`所管控,因此实际是`systemd`的配置。 ``` sudo mkdir -p /etc/systemd/system/docker.service.d sudo touch /etc/systemd/system/docker.service.d/proxy.conf ``` 在这个`proxy.conf`文件(可以是任意`*.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" ``` 其中,`proxy.example.com:8080`要换成可用的免密代理。 通常使用`cntlm`在本机自建免密代理,去对接公司的代理。 可参考《[Linux 下安装配置 Cntlm 代理](https://note.qidong.name/2018/11/cntlm-proxy/)》。 Container 代理 [¶](#container%e4%bb%a3%e7%90%86) ---------------------------------------------- 在容器运行阶段,如果需要代理上网,则需要配置`~/.docker/config.json`。 以下配置,只在 Docker 17.07 及以上版本生效。 ``` { "proxies": { "default": { "httpProxy": "http://proxy.example.com:8080", "httpsProxy": "http://proxy.example.com:8080", "noProxy": "localhost,127.0.0.1,.example.com" } } } ``` 这个是用户级的配置,除了`proxies`,`docker login`等相关信息也会在其中。 而且还可以配置信息展示的格式、插件参数等。 此外,容器的网络代理,也可以直接在其运行时通过`-e`注入`http_proxy`等环境变量。 这两种方法分别适合不同场景。 `config.json`非常方便,默认在所有配置修改后启动的容器生效,适合个人开发环境。 在 CI/CD 的自动构建环境、或者实际上线运行的环境中,这种方法就不太合适,用`-e`注入这种显式配置会更好,减轻对构建、部署环境的依赖。 当然,在这些环境中,最好用良好的设计避免配置代理上网。 `docker build`代理 [¶](#docker-build%e4%bb%a3%e7%90%86) ----------------------------------------------------- 虽然`docker build`的本质,也是启动一个容器,但是环境会略有不同,用户级配置无效。 在构建时,需要注入`http_proxy`等参数。 ``` 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" \ -t your/image:tag ``` **注意**:无论是`docker run`还是`docker build`,默认是网络隔绝的。 如果代理使用的是`localhost:3128`这类,则会无效。 这类仅限本地的代理,必须加上`--network host`才能正常使用。 而一般则需要配置代理的外部 IP,而且代理本身要开启 gateway 模式。 重启生效 [¶](#%e9%87%8d%e5%90%af%e7%94%9f%e6%95%88) ----------------------------------------------- 代理配置完成后,`reboot`重启当然可以生效,但不重启也行。 `docker build`代理是在执行前设置的,所以修改后,下次执行立即生效。 Container 代理的修改也是立即生效的,但是只针对以后启动的 Container,对已经启动的 Container 无效。 `dockerd`代理的修改比较特殊,它实际上是改`systemd`的配置,因此需要重载`systemd`并重启`dockerd`才能生效。 ``` sudo systemctl daemon-reload sudo systemctl restart docker ``` 参考 [¶](#%e5%8f%82%e8%80%83) --------------------------- * [Control Docker with systemd | Docker Documentation](https://docs.docker.com/config/daemon/systemd/) * [Configure Docker to use a proxy server | Docker Documentation](https://docs.docker.com/network/proxy/) * [Use the Docker command line | Docker Documentation](https://docs.docker.com/engine/reference/commandline/cli/)
幻翼
Dec. 18, 2023, 5:07 p.m.
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
share
link
type
password
Update password