简记:为Docker配置服务代理

简记
为Docker配置服务代理

- 文章信息 - Author: 李俊才 (jcLee95)
Visit me at CSDN: https://jclee95.blog.csdn.net
My WebSitehttp://thispage.tech/
Email: 291148484@163.com.
Shenzhen China
Address of this article:https://blog.csdn.net/qq_28550263/article/details/139562987
HuaWei:https://bbs.huaweicloud.com/blogs/428728

本文全在合规范围内进行讲解,不包含跨越不可抗力阻扰内容,主要为多数能够自行通过合法途径科学上网的技术人在特定环境下介绍配置Docker代理。

在这里插入图片描述


【介绍】:本文主要关于在一台windows上为另外Linux主机上Docker提供代理访问的相关步骤。

在这里插入图片描述


1. 背景描述

想必大陆地区很多免费镜像停服如上交Docker镜像,给很多自己在做Docker相关项目的小伙伴带来了一些没有必要的麻烦。其实我个人而言主要使用的还是官方源,不论是虚拟机还是物理机,主要是镜像更新全面和及时。

因此我想介绍在一个局域网内,使用一台主机作为代理服务,其它主机通过这个服务访问外网,进而配置Docker代理的步骤。

本文全在合规范围内进行讲解,不包含跨越不可抗力阻扰内容,主要为多数能够自行通过合法途径科学上网的技术人在特定环境下介绍配置Docker代理。

这里一个具体背景描述如下:

我有一个外网服务器可惜之只能运行于Windows/Mac系统上,但是目前我希望在另外一台同网段Linux主机上通过代理访问外网流量。现在需要做的事情如下:

在Windows主机上,假设设置外网服务监听的是7890端口,但是默认情况下,它仅仅针对于当前主机有效,也就是说,外网服务监听的是本地。

在其它的所有同一网络的Liniux主机上,通过这台Windows的代理服务访问外网,进而使用Docker官方源。

2. 代理服务端主机的操作

2.1 开启代理监听

这个部分不需要讲解,一般看文章的人都是高手。

2.2 暂时关闭防火墙

确保Windows防火墙已经关闭。可以临时禁用防火墙来进行测试:

netsh advfirewall set allprofiles state off

后续停用时请记得重新启用防火墙:

netsh advfirewall set allprofiles state on

3. Linix上使用代理

你可以依据自己的需要选择一种方式。

3.1 proxychains代理方式

要在同网段的Ubuntu主机上使用Windows主机上的VPN代理,你可以按照以下步骤进行配置:

  1. 确保Windows主机上的Clash和Nginx都已经正确配置并启动,并且Windows防火墙允许其他主机访问Nginx监听的端口(如7890)。

  2. 在Ubuntu主机上,打开终端。

  3. 安装proxychains,它是一个命令行工具,可以让任何程序通过代理运行。可以使用以下命令安装:

sudo apt update
sudo apt install proxychains
  1. 配置proxychains。打开proxychains的配置文件:
sudo vim /etc/proxychains.conf
  1. 在配置文件的末尾,按照下面的格式编写添加代理:
http 服务端主机IP VPN服务端口号

这里你应该修改为你自己启用的服务端IP和端口号,比如:

http 192.168.31.6 7890
  1. 保存文件并退出编辑器。

  2. 现在,可以通过在命令前加上proxychains来使任何命令通过代理运行。例如:

proxychains curl https://www.google.com

这将通过代理访问Google。

3.2 全局代理方式

如果你想让整个系统都使用代理,可以设置环境变量http_proxyhttps_proxy

export http_proxy=http://服务端主机IP:VPN服务端口号
export https_proxy=http://服务端主机IP:VPN服务端口号

例如:

export http_proxy=http://192.168.31.6:7890
export https_proxy=http://192.168.31.6:7890

然后在远程到外网的服务端(我这里为:192.168.31.236的一台主机),在客户端主机上,测试服务端主机``

curl --proxy http://192.168.31.6:7890 https://www.google.com

在这里插入图片描述

3.3 永久全局代理方式

有些场景下,为了避免每次都手动设置环境变量,你可以将这些环境变量添加到你的shell配置文件中(如~/.bashrc~/.bash_profile),这样每次启动终端时都会自动加载这些设置。

vim  ~/.bashrc

然后在文件末尾添加以下行:

export http_proxy=http://服务端主机IP:VPN服务端口号
export https_proxy=http://服务端主机IP:VPN服务端口号

例如:

export http_proxy=http://192.168.31.6:7890
export https_proxy=http://192.168.31.6:7890

保存并退出编辑器,然后使更改生效:

source ~/.bashrc

4. 为Docker使用代理

4.1 为什么

在内地网络环境中,直接访问外网可能会受到限制或速度较慢。通过配置代理服务器,可以绕过这些限制并加速访问外网资源。对于Docker来说,配置代理服务器可以显著提高拉取镜像的速度,特别是在需要频繁拉取和更新镜像的开发和测试环境中。

4.2 操作步骤

4.2.1 创建Docker配置文件(如果不存在)

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/http-proxy.conf

4.2.2 添加代理设置

sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf

在配置文件中,添加以下内容:

[Service]
Environment="HTTP_PROXY=http://服务端主机IP:VPN服务端口号"
Environment="HTTPS_PROXY=http://服务端主机IP:VPN服务端口号"
Environment="NO_PROXY=localhost,127.0.0.1"

例如:

[Service]
Environment="HTTP_PROXY=http://192.168.31.6:7890"
Environment="HTTPS_PROXY=http://192.168.31.6:7890"
Environment="NO_PROXY=localhost,127.0.0.1"

这里我使用的依然是192.168.31.6和端口7890。请将http://192.168.31.6:7890替换为你实际的代理服务器地址和端口。

NO_PROXY环境变量指定了不应该通过代理访问的主机或域名,通常包括本地主机和回环地址。

4.2.3 重新加载Docker服务配置并重启Docker

  1. 重新加载Docker服务配置:
sudo systemctl daemon-reload
  1. 重启Docker服务:
sudo systemctl restart docker

5. 检查与测试效果

你可以使用docker info验证代理设置是否生效:

docker info

你可以在输出中看到这个格式:

HTTP Proxy: http://服务端主机IP:VPN服务端口号
HTTPS Proxy: http://服务端主机IP:VPN服务端口号

比如:

HTTP Proxy: http://192.168.31.6:7890
HTTPS Proxy: http://192.168.31.6:7890

如图所示:
在这里插入图片描述

现在我们可以试试拉取官方镜像看看是否很快拉取成功:

在这里插入图片描述
可见瞬间就成功拉取了,说明通过代理成功。

最后停用时,请记得在Windows主机侧重新启用防火墙:

netsh advfirewall set allprofiles state on

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

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

相关文章

Leetcode3040. 相同分数的最大操作数目 II

Every day a Leetcode 题目来源:3040. 相同分数的最大操作数目 II 解法1:记忆化搜索 第一步可以做什么?做完后,剩下要解决的问题是什么? 删除前两个数,剩下 nums[2] 到 nums[n−1],这是一个…

分享一个 .NET Core Console 项目中应用 NLog 写日志的详细例子

前言 日志在软件开发中扮演着非常重要的角色,通常我们用它来记录应用程序运行时发生的事件、错误信息、警告以及其他相关信息,帮助在调试和排查问题时更快速地定位和解决 Bug。 通过日志,我们可以做到: 故障排除和调试&#xff…

4.大模型微调技术LoRA

大模型低秩适配(LoRA)技术 现有PEFT 方法的局限与挑战 Adapter方法,通过增加模型深度而额外增加了模型推理延时。Prompt Tuning、Prefix Tuning、P-Tuning等方法中的提示较难训练,同时缩短了模型可用的序列长度。往往难以同时实现高效率和高质量,效果通常不及完全微调(f…

已解决Error || RuntimeError: size mismatch, m1: [32 x 100], m2: [500 x 10]

已解决Error || RuntimeError: size mismatch, m1: [32 x 100], m2: [500 x 10] 原创作者: 猫头虎 作者微信号: Libin9iOak 作者公众号: 猫头虎技术团队 更新日期: 2024年6月6日 博主猫头虎的技术世界 🌟 欢迎来…

基于Java-SpringBoot-VUE-MySQL的高校数字化迎新管理系统

基于Java-SpringBoot-VUE-MySQL的高校数字化迎新管理系统 登陆界面 联系作者 如需本项目源代码,可扫码或者VX:bob1638联系作者。 首页图表 系统功能持续更新中。。。 介绍 这是一款主要用于高校迎新的系统,主要是采用了SpringBoot2.X VUE2.6 ElementUI2.…

mysql 数据库datetime 类型,转换为DO里面的long类型后,只剩下年了,没有了月和日

解决方法也简单&#xff1a; 自定义个一个 Date2LongTypeHandler <resultMap id"BeanResult" type"XXXX.XXXXDO"><result column"gmt_create" property"gmtCreate" jdbcType"DATE" javaType"java.lang.Long&…

软件游戏steam_api.dll丢失的解决方法,总结5种有效的方法

在玩电脑游戏时&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“游戏缺少steam_api.dll”。这个问题可能让很多玩家感到困惑和烦恼。那么&#xff0c;究竟是什么原因导致游戏缺少steam_api.dll呢&#xff1f;又该如何解决这个问题呢&#xff1f;本文将为大家…

Jmeter压测 —— 1秒发送1次请求

场景&#xff1a;有时候测试场景需要设置请求频率为一秒一次&#xff08;或几秒一次&#xff09;实现方法一&#xff1a;1、首先需要在线程组下设置循环次数&#xff08;可以理解为请求的次数&#xff09; 次数设置为请求300次&#xff0c;其中线程数跟时间自行设置 2、在设置…

JavaScript前端技术入门教程

引言 在前端开发的广阔天地中&#xff0c;JavaScript无疑是最耀眼的一颗明星。它赋予了网页动态交互的能力&#xff0c;让网页从静态的文本和图片展示&#xff0c;进化为可以与用户进行实时交互的丰富应用。本文将带您走进JavaScript的世界&#xff0c;为您提供一个入门级的教…

按键精灵在Win11中弹窗出现乱码并且自带的部分系统插件不能使用的解决方法

按键精灵中出现以下问题&#xff1a; 提示信息的弹窗出现乱码&#xff1a; 系统自带的部分像 plugin. 开头的插件不能使用&#xff0c;如下&#xff1a;s Plugin.Sys.GetDateTime() screenX Plugin.GetSysInfo.GetScreenResolutionX screenY Plugin.GetSysInfo.GetScreenRe…

Mysql使用中的性能优化——批量插入的规模对比

在《Mysql使用中的性能优化——单次插入和批量插入的性能差异》中&#xff0c;我们观察到单次批量插入的数量和耗时呈指数型关系。 这个说明&#xff0c;不是单次批量插入的数量越多越好。本文我们将通过实验测试出本测试案例中最佳的单次批量插入数量。 结论 本案例中约每次…

Vue3 + TS + Antd + Pinia 从零搭建后台系统(一) 脚手架搭建 + 入口配置

简易后台系统搭建开启&#xff0c;分几篇文章更新&#xff0c;本篇主要先搭架子&#xff0c;配置入口文件等目录 效果图一、搭建脚手架&#xff1a;二、处理package.json基础需要的依赖及运行脚本三、创建环境运行文件四、填充vue.config.ts配置文件五、配置vite-env.d.ts使项目…

adb shell进入设备后的命令

目录 一、查看删除手机 /data/local/tmp/下的文件 二、设置权限 三、查看手机设备正在运行的服务 四、可能需要的adb 命令 一、查看删除手机 /data/local/tmp/下的文件 可以通过以下命令&#xff1a; adb shell # 进入设备 ls /data/local/tmp/ # 查看文件夹下的内容…

一、Electron 环境初步搭建

新建一个文件夹&#xff0c;然后进行 npm init -y 进行初始化&#xff0c;然后我们在进行 npm i electron --save-dev , 此时我们按照官网的教程进行一个初步的搭建&#xff0c; 1.在 package.json 文件进行修改 {"name": "electron-ui","version…

理财-商业保险

目录&#xff1a; 一、保险查询 1、金事通APP 2、商业保险APP 二、平安寿险 1、智能星 2、智富人生A 3、总结 三、保险中的掩藏项 一、保险查询 1、金事通APP 中国银行保险信息技术管理有限公司发挥金融基础设施作用&#xff0c;以“切实让数据多跑路、百姓少跑腿”为…

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:电力巡检智能机器人

聚焦数字经济与双碳经济赛道&#xff0c;专注于提供集中式新能源场站与分布式综合能源数智化整体解决方案&#xff0c;坚持以场站数字化、综合能源数字化双轮驱动发展。依靠专业化人才队伍与丰富的实证基地研究经验&#xff0c;打造成熟、先进的数智新能源研发平台。 在集中式新…

LabVIEW 反向工程的实现与法律地位

什么是LabVIEW反向工程&#xff1f; 反向工程是指从现有的应用程序或软件中推导出其设计、架构、代码等信息的过程。对于LabVIEW而言&#xff0c;反向工程涉及从现有的VI&#xff08;虚拟仪器&#xff09;文件、项目或应用程序中提取出设计思路、功能模块、算法实现等。 LabV…

十大排序

本文将以「 通俗易懂」的方式来描述排序的基本实现。 &#x1f9d1;‍&#x1f4bb;阅读本文前&#xff0c;需要一点点编程基础和一点点数据结构知识 本文的所有代码以cpp实现 文章目录 排序的定义 插入排序 ⭐ &#x1f9d0;算法描述 &#x1f496;具体实现 &#x1f…

英语国际音标 - DJ 音标 - KK 音标

英语国际音标 - DJ 音标 - KK 音标 1. 国际音标 (International Phonetic Alphabet&#xff0c;IPA)1.1. 记音类型1.2. 48 个国际音标发音表1.2.1. 元音 (vowel)1.2.1.1. 单元音 (monophthong)1.2.1.2. 双元音 (diphthong) 1.2.2. 辅音 (consonant)1.2.2.1. 清音 (voiceless so…

微信小程序学习笔记(1)

文章目录 一、文件作用app.json&#xff1a;project.config.json:sitemap.json页面中.json 二、项目首页三、语法**WXML**和**HTML**WXSS 和CSS的区别小程序中.js文件的分类 一、文件作用 app.json&#xff1a; 当前小程序的全局配置&#xff0c;包括所有页面路径、窗口外观、…