【Linux】在内网环境通过代理使用公网Docker镜像

一般来说,软件公司的开发环境多位于内网中,在容器的使用上会使用内部镜像源。但是,内部软件源上的镜像总是不那么丰富,如果想使用公网镜像,该怎么办?

文章目录

还好,Docker支持通过代理来安装镜像。那内网环境中使用外部镜像的步骤如下:

1、确定有一台可访问公网的机器

内网环境中必须要一台机器可访问公网。并找到镜像地址,例如

https://hub.docker.com/_/mysql

2、在该机器上安装HTTP/HTTPS代理

在Windows机器上,下载代理软件squid-2.7,解压后放在C:\根目录。

  • 将C:\squid\etc下所有的文件名的default关键词删除,使它们能正常使用;
  • 编辑C:\squid\etc\squid.conf,将其中所有关于http_access的内容删除,然后改为http_access allow all;
  • (Windows7专属操作)添加一行配置 visible_hostname abc123,其中abc123可以自定义,不做要求;
  • 在命令行上运行C:\squid\sbin\squid.exe -z;
  • 在命令行上启动squid,命令为C:\squid\sbin\squid.exe
  • 查看你的桌面云主机地址和代理端口,后面要用。

3、在宿主机上安装Docker软件

可通过搜索引擎,例如CentOS7上的安装教程。

https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-centos-7

4、在宿主机上设置Docker的代理

仍以CentOS7为例,登录到宿主机上。编辑

/etc/systemd/system/docker.service.d/http-proxy.conf,如果没有则创建该文件,加入内容:

config 复制代码
[Service]
Environment="HTTP_PROXY=http://<代理服务器IP>:<代理服务器端口>;

【可选,设置忽略HTTPS证书】编辑/etc/docker/daemon.json,如果没有则创建该文件,加入内容:

config 复制代码
{
 "insecure-registries": ["registry.XXX.com"]
}

重启Docker服务

shell 复制代码
systemctl restart docker

5、最后,可以拉镜像了

shell 复制代码
docker pull registry.XXX.com/libary/mysql:8
相关推荐
我科绝伦(Huanhuan Zhou)9 分钟前
Oracle控制文件、SCN与检查点机制深度解析及数据库初始化原理
运维·数据库·oracle
杨云龙UP32 分钟前
从0到可落地:Oracle RMAN异地NFS备份标准脚本(多实例通用)
linux·运维·数据库·oracle
黑客思维者38 分钟前
嵌入式系统DevSecOps深度设计:构建固件级漏洞免疫体系的自动化管道
运维·自动化·devsecops·嵌入式系统
古城小栈38 分钟前
吃透Cron表达式
linux·服务器·数据库
猫猫的小茶馆1 小时前
【ARM】BootLoader(Uboot)介绍
linux·汇编·arm开发·单片机·嵌入式硬件·mcu·架构
Yeliang Wu1 小时前
LLaMA-Factory 模型评估理论与实战:基于 Ubuntu 22.04 的系统化指南
linux·ubuntu·llama·评估·llamafactory
生信大表哥1 小时前
单细胞测序分析(十一)轨迹分析
linux·rstudio·数信院生信服务器·生信云服务器
躺着听Jay1 小时前
【1267 - Illegal mix of collations 】mysql报错解决记录
java·linux·前端
不秃头的帅哥1 小时前
程序地址空间(基于c++和linxu的一些个人笔记
linux·开发语言·c++·操作系统·内存空间
Yweir1 小时前
Linux性能监控的工具集和分析命令工具
java·linux·jvm