Docker 设置代理的三种方法(2024年12月19日亲自测试)

Docker 设置代理的三种方法

在 Docker 中设置代理是非常常见的需求,尤其是在某些需要通过代理访问外部资源的网络环境下。本文将介绍三种配置 Docker 使用代理的常见方法:通过 daemon.json 配置镜像加速器、通过 daemon.json 配置 HTTP/HTTPS 代理、以及通过 docker.service 配置代理。

方式一 配置 daemon.json 镜像加速器

通过修改 Docker 的配置文件 daemon.json 来配置镜像加速器,可以加速 Docker 镜像的拉取速度,尤其是在国内环境下。操作步骤如下:

  1. 编辑 /etc/docker/daemon.json 文件:

    sudo vim /etc/docker/daemon.json
    
  2. 添加镜像加速器配置:

    {"registry-mirrors": ["https://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://ueo0uggy.mirror.aliyuncs.com","https://docker.m.daocloud.io","https://cf-workers-docker-io-apl.pages.dev","http://95.169.25.181"]
    }
    
  3. 保存并退出编辑器,然后重启 Docker 服务:

    sudo systemctl restart docker
    

您可以通过 docker info 命令查看当前 Docker 配置,包括是否成功加载了镜像加速器。

docker info | grep -i 'Registry Mirrors'

如果配置成功,您会看到类似以下的输出:

Registry Mirrors:https://hub-mirror.c.163.comhttps://docker.mirrors.ustc.edu.cnhttps://ueo0uggy.mirror.aliyuncs.comhttps://docker.m.daocloud.iohttps://cf-workers-docker-io-apl.pages.devhttp://95.169.25.181

这表示镜像加速器已经成功配置并生效。

  1. 拉取镜像进行测试

另一种验证方法是通过拉取一个镜像来检查是否使用了镜像加速器。您可以尝试拉取一个常见的 Docker 镜像,例如 hello-world

docker pull hello-world

如果您配置了国内的镜像加速器,并且能够快速完成镜像拉取,那么镜像加速器已经生效。如果拉取速度较慢,可能说明加速器没有生效,您可以再次检查配置或网络环境。

方式二 配置 daemon.json HTTP/HTTPS 代理

如果需要通过代理访问 Docker 镜像或其他网络资源,可以通过修改 daemon.json 配置 HTTP 和 HTTPS 代理。以下是配置步骤:

  1. 编辑 /etc/docker/daemon.json 文件:

    sudo vim /etc/docker/daemon.json
    
  2. 配置 HTTP 和 HTTPS 代理:

    {"proxies": {"http-proxy": "http://127.0.0.1:11234","https-proxy": "http://127.0.0.1:11234"}
    }
    
  3. 保存并退出编辑器,重启 Docker 服务:

    sudo systemctl restart docker
    
  4. 验证代理配置是否生效:

    docker info | grep -A 1 ' HTTP Proxy'
    

    输出结果应显示:

    WARNING: bridge-nf-call-iptables is disabled
    HTTP Proxy: http://127.0.0.1:11234
    HTTPS Proxy: http://127.0.0.1:11234
    WARNING: bridge-nf-call-ip6tables is disabled
    

方式三 配置 docker.service 代理

另一种配置代理的方法是直接在 Docker 服务的启动配置中设置代理。通过编辑 docker.service 文件来配置 HTTP 和 HTTPS 代理。

配置步骤:

  1. 查找 docker.service 文件的位置:

    systemctl status docker
    

    输出中的 Loaded 行会显示 docker.service 的路径,例如:

    Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
    
  2. 编辑 docker.service 文件,在 [Service] 部分添加代理环境变量:

    sudo vim /lib/systemd/system/docker.service
    
  3. [Service] 部分添加如下内容:

    [Service]
    Environment="HTTP_PROXY=http://127.0.0.1:8490/"
    Environment="HTTPS_PROXY=http://127.0.0.1:8490/"
    
  4. 保存并退出编辑器,重载 docker.service 配置并重启 Docker 服务:

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  5. 如果需要查看 Docker 启动日志,可以使用以下命令:

    sudo journalctl -u docker.service
    

通过这三种方法,您可以轻松地为 Docker 配置代理,帮助您更好地管理镜像拉取和容器网络访问。选择适合您的方式进行配置,以便在使用 Docker 时更加高效、便捷。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/890182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【docker】如何打包前端并运行

前端使用 Vue 3 Vite 1.use npm run preview 运行 0.项目根目录下新建.env文件 VITE_BASE_API_prodhttp://127.0.0.1:5000/api # 线上环境 VITE_MOCK_API_prodapi # 本地模拟数据 VITE_BASE_API_devhttp://127.0.0.1:5000/ap…

【mysql】1205 -Lock wait timeout exceeded; try restarting transaction

问题: mysql8执行SQL提示下面错误: 1205 -Lock wait timeout exceeded; try restarting transaction 1205-超过锁定等待超时;尝试重新启动事务 可能的原因: 事务冲突:多个事务同时尝试修改同一行数据,导…

android 登录界面编写

1、登录页面实现内容 1.实现使用两个EditText输入框输入用户名和密码。 2.使用CheckBox控件记住密码功能。 3.登录时候,验证用户名和密码是否为空。 4.当前CheckBox控件记住密码勾上时,使用SharedPreferences存储用户名和密码。 5.登录时候使用Prog…

LDP+LBP代码解析及应用场景分析

代码整体结构与功能概述 这段 C 代码主要实现了两个图像特征提取算法,分别是局部方向模式(Local Directional Pattern,LDP)和多分块局部二值模式(Multi-Block Local Binary Pattern,Multi-Block LBP&#…

Nuxt样式文件导入

1.在Nuxt导入样式文件的方式 在nuxt中,支持两种样式文件导入的配置。如下: 通过配置文件的css属性指定文件路径。该属性可以支持一个字符串数组,每一项为一个样式文件路径。例如: export default defineNuxtConfig({compatibili…

单元测试使用记录

什么是单元测试 简单来说就是对一个类中的方法进行测试,对输出的结果检查判断是否符合预期结果 但是在多年的工作中,从来没有哪个项目中真正系统的用到了单元测试,因此对它还是很陌生的,也就造成更加不会在项目中区使用它。 如何…

将4G太阳能无线监控的视频接入电子监控大屏,要考虑哪些方面?

随着科技的飞速发展,4G太阳能无线监控系统以其独特的优势在远程监控领域脱颖而出。这种系统结合了太阳能供电的环保特性和4G无线传输的便捷性,为各种环境尤其是无电或电网不稳定的地区提供了一种高效、可靠的视频监控解决方案。将这些视频流接入大屏显示…

Linux C 程序 【05】异步写文件

1.开发背景 Linux 系统提供了各种外设的控制方式,其中包括文件的读写,存储文件的介质可以是 SSD 固态硬盘或者是 EMMC 等。 其中常用的写文件方式是同步写操作,但是如果是写大文件会对 CPU 造成比较大的负荷,采用异步写的方式比较…

曲线的测地曲率

测地曲率 设 S : r ( u , v ) S:r(u,v) S:r(u,v)是曲面, γ ( s ) r ( u ( s ) , v ( s ) ) \gamma(s)r(u(s),v(s)) γ(s)r(u(s),v(s))是 S S S上的一条弧长参数化曲线。 1.称 K g ( s ) D γ ˙ d s ( γ ( s ) ) T \mathbb{K}_g(s)\frac{D\dot{\gamma}}{d\b…

js常用方法之: 预览大图(uniapp原生方法封装)

方法: //预览图片 pic可传单个图片地址字符串 或 图片数组(带index) previewPic: function(pic, index) {if (!pic) return;if (index undefined) {let array [];array.push(pic);uni.previewImage({urls: array,current: array[0]});} else {uni.previewImage({urls: pic,…

重拾设计模式--原型模式

文章目录 原型模式定义原型模式UML图优点缺点使用场景C 代码示例深拷贝、浅拷贝 原型模式定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象; 核心中的核心就是 克隆clone ,后面讲 原型模式是一种创建型设计模式,它的主要…

flutter --no-color pub get 超时解决方法

新建Flutter项目后,运行报错,需要执行pub get 点击Run ‘flutter pub get’ … … … 卡着,不动了,提示超时 是因为墙的问题 解决方案: 添加以下环境变量 变量名: PUB_HOSTED_URL 变量值: https://pub.flutter-io.cn …

如何详细步骤地进行Z-Blog博客系统的安装过程?

安装Z-Blog博客系统的步骤如下: 下载Z-Blog软件包:根据你的操作系统,选择相应的Z-Blog软件包进行下载。在Z-Blog官方网站上,你可以找到最新版本的Z-Blog软件包。 解压软件包:将下载的Z-Blog软件包解压到你的服务器或本…

【C++】优先级队列以及仿函数

本篇我们来介绍一下优先级队列 priority_queue 。优先级队列的底层是数据结构中的堆,在C中它是一个容器适配器,这个容器适配器比之前的栈和队列更复杂。 1.priority_queue的介绍 1.1 优先级队列的底层 因为优先级队列就是堆,堆的底层是数组…

CompletableFuture小记

文章目录 概述Thread 和 RunnableThreadRunnableThread 和 Runnable 的关系小问题 Callable、Future 和 FutureTaskCallableFutureTaskFuture接口Callable 和 FutureTask 的关系Thread 、Runnable、FutureTask 和 Callable 的关系 CompletableFuture常用方法概述get() 和 join(…

不需要服务器,使用netlify快速部署自己的网站

Netlify简介 1.1 Netlify的功能与特点 Netlify 是一个功能强大的静态网站托管平台,它不仅提供了简单的网站部署功能,还集成了许多现代化的开发工具和服务,帮助开发者更高效地构建、部署和管理网站。Netlify 的核心功能包括: 自动…

sudo apt-get update 报错及解决

sudo apt-get update报错及解决工作笔记 一、问题现象 在执行 sudo apt-get update 命令时,终端出现一系列报错信息: 从 http://archive.ubuntu.com/ubuntu 相关多个仓库(如 xenial InRelease、xenial-security InRelease、xenial-updates…

简单工厂模式和策略模式的异同

文章目录 简单工厂模式和策略模式的异同相同点:不同点:目的:结构: C 代码示例简单工厂模式示例(以创建图形对象为例)策略模式示例(以计算价格折扣策略为例)UML区别 简单工厂模式和策…

leetcode 3285 找到稳定山的下标

3285. 找到稳定山的下标 已解答 简单 相关标签 相关企业 有 n 座山排成一列,每座山都有一个高度。给你一个整数数组 height ,其中 height[i] 表示第 i 座山的高度,再给你一个整数 threshold 。 对于下标不为 0 的一座山,如果…

Unity动态读取外部图片转Texture2D,内存过大问题解决方案

问题描述 加载原始图片2.63M的图片,分辨率为3023*4032,占用内存108.5M 加载原始图片12.6 M的图片,分辨率为6000*8000,占用内存427.2M 太恐怖了吧 解决方案 1.加载完图片,等比缩放,宽高改为1024或者512以下 1024占用5.2M,512占用1.3M,相比小了很多 2.原始Texture2…