自建Docker镜像加速服务

  由于 hub.docker.com 在国内已经被墙,手里有闲置服务器的佬友可以选择自己搭建一个Docker镜像加速服务,以便能够中转对 Docker 官方镜像仓库的请求,解决国内无法访问或访问缓慢的问题。

前期准备

  • 一台未被墙的服务器 

部署

​ 鉴于Github上有不少现成的项目,我选择的是 https://github.com/dqzboy/Docker-Proxy

通过项目脚本部署

# CentOS && RHEL && Rocky
yum -y install curl
# ubuntu && debian
apt -y install curl

# 国外环境
bash -c "$(curl -fsSL https://raw.githubusercontent.com/dqzboy/Docker-Proxy/main/install/DockerProxy_Install.sh)"

# 国内环境
bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/dqzboy/Docker-Proxy/install/DockerProxy_Install.sh)"
  • 键入1—>1)安装服务

脚本会自动判断内存资源和防火墙禁用。

  • 键入1—>1)一键部署所有服务

提示“是否开启BBR,优化网络带宽提高网络性能?[y/n]”。

  • 键入n—>不开启BBR(按需开启,我的服务器事先安装过其它BBR,因此选择不安装)

提示“是否执行软件包安装? (首次部署需安装依赖) [y/n]”。

  • 键入y—>执行软件包安装

提示“是否安装WEB服务? (用来通过域名方式访问加速服务) [y/n]”

  • 键入n—>不安装WEB服务

提示“安装环境确认 [国外输1 国内输2]”

  • 键入1—>国外

提示“输入序号下载对应配置文件,空格分隔多个选项. all下载所有”

  • 键入9—>下载所有

提示“是否要修改缓存时间? [y/n]”

  • 键入n—>不修改缓存时间

提示“是否添加代理? [y/n]”

  • 键入n—>不添加代理

OK,现在你已经得到属于你自己的镜像代理地址了,如果你的IP地址为:123.123.123.123,则你的Docker Registry UI访问地址为:http://123.123.123.123:50000 
,你可以像其他的镜像代理服务一样使用你的镜像代理地址了。

​ 如果你更喜欢用WebUI来获取链接,想获得下图所示,和Docker Proxy一样的网页服务,那么请继续下面的步骤。

Docker-Proxy CmdUI部署(可选)

再次执行一键脚本

bash -c "$(curl -fsSL https://raw.githubusercontent.com/dqzboy/Docker-Proxy/main/install/DockerProxy_Install.sh)"
  • 键入2—>2)组件安装

  • 键入1—>1)安装环境依赖

  • 键入8—>8)安装HubCMD-UI

  • 键入1—>1)安装HubCMD-UI

等待拉取服务镜像并启动服务,结果如下图

OK,现在你得到了你的Docker-Proxy CmdUI访问地址为:http://123.123.123.123:30080,你可以像其他的镜像代理服务(如Docker Proxy 镜像加速 46)一样使用你的镜像代理地址了。

​ 如图所示:

image

​ 但是还别急,你会发现输入了镜像名称后,出现的并不是你自己的ip地址,所以还需要继续配置。

输入 http://123.123.123.123:30080/admin

 用户名为:root

​ 密码为:admin@123

将Docker镜像代理的地址改为你的IP地址 123.123.123.123或者 域名

​ 再次返回 http://123.123.123.123:30080,现在就可以愉快地使用啦。

### 创建和配置私有 Docker 镜像仓库 #### 一、理解Docker Registry及其优势 构建私有的Docker镜像库能够提供诸多便利之处,比如加速内部开发流程中的镜像分发速度,增强安全性以及更好地管理企业级应用所需的自定义镜像版本。对于希望实现持续集成/持续部署(CI/CD)管道自动化的企业来说尤为关键[^1]。 #### 二、安装并启动官方Docker Registry服务 为了建立一个简易版的私有仓库,在目标服务器上执行如下命令可以完成基本设置: ```bash # 获取最新的稳定版Docker Registry镜像文件 docker pull registry:2 # 启动容器实例并将本地端口映射到容器内的默认HTTP接口(5000),同时赋予其自动重启属性 docker run -d \ -p 5000:5000 \ --restart=always \ --name registry \ registry:2 ``` 上述操作会在指定主机上运行一个基于最新`registry:2`标签下的Docker镜像服务进程,并开放外部网络连接至该节点上的5000号TCP端口用于接收来自其他设备推送或拉取请求的数据流[^2]。 #### 三、启用TLS加密保障数据传输安全 考虑到未经保护的HTTP通道可能存在风险因素影响整体系统的稳定性与可靠性,因此建议采用SSL/TLS协议对所有进出流量实施全程加密处理措施。具体做法涉及生成一对公钥证书及对应的私钥材料,并将其妥善保存于适当位置以便后续引用;接着修改原有启动参数加入必要的环境变量声明指向这些资源的位置路径即可生效此功能特性。 #### 四、验证新设立的私人存储库可用性 一旦完成了前面几步的基础建设工作之后,则可以通过任意已安装好Docker客户端工具的工作站来进行简单的功能性检测实验。这里列举了一些常用的指令帮助确认整个架构是否正常运作无误: ```bash # 给待上传的目标镜像打上完整的远程地址前缀标记 docker tag registry:2.4.1 192.168.0.180/test/registry # 登录认证环节(如果启用了身份验证机制的话) docker login 192.168.0.180 # 尝试获取由远端提供的特定名称空间下某一分支版本记录 docker pull 192.168.0.180/test/registry ``` 以上步骤展示了怎样利用命令行界面快速检验新建好的私有化注册中心能否顺利响应各类常规业务需求场景的操作指南[^3]。 #### 五、解决可能出现的问题 当尝试从另一台机器pull镜像时遇到错误提示类似于`http: server gave HTTP response to HTTPS client`的情况,这通常是因为客户端试图通过HTTPS方式访问而服务器只支持HTTP造成的不匹配现象。此时应检查两端关于协议的选择一致性问题,确保它们之间保持同步一致的状态才能顺利完成交互过程[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

查里王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值