Docker搭建镜像加速站的四种方法实现

 更新时间:2025年09月25日 10:45:16   作者:JimKKu  
本文介绍了四种搭建 Docker 镜像加速站的方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

之前因为学习原因,购买了一台海外服务器,使用过程中,我发现它拉取 Docker 镜像十分方便,于是乎就长时间作为一个 Docker 中间站来使用,通过 Docker pull + Docker save + scp + Docker load使用着,但是这样太麻烦了,每次获得一个镜像,我都要四个步骤,而且服务器带宽很小,拉取挺慢、传下来更慢,给我用的糟心的不行,因此,经过两天的仔细处理,部署了一个 Docker 镜像加速站,试了下速度还可以,下面是过程中我用的几种方法,每种方法的优劣我都进行一些介绍。

方法一: Nexus

官网 | Github

优点:快速部署

缺点:需要至少1G的运存,否则无法启动或启动后会抛异常

支持:Docker、Maven、npm、PyPI

如果你的服务器有足够运存的话,那这个方法还是很推荐的,使用下方命令一键启动即可:

  1. 启动
docker run -d -p 8081:8081 -p 8082:8082 --name nexus sonatype/nexus3
  1. 随后在编辑/etc/docker/daemon.json文件,在JSON中加入下方内容即可:
{
  "registry-mirrors": ["http://xxxx.com:8082"]
}

应该也可以直接使用IP

  1. 加载配置并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker

方法二: Harbor

优点:支持私有镜像仓库 、 也能加速

缺点:需要至少2G的运存、需要自己编写配置文件

支持:Docker、Helm Chart、OCI 镜像

  1. 部署
# 使用 Docker Compose 快速部署
wget https://github.com/goharbor/harbor/releases/download/v2.8.0/harbor-online-installer-v2.8.0.tgz
tar -xzvf harbor-online-installer-v2.8.0.tgz
cd harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml  # 修改 hostname、端口等配置
./install.sh
  1. 使用

编辑/etc/docker/daemon.json文件,加入以下内容:

{  "registry-mirrors": ["https://your-harbor-server.com"] }
  1. 加载配置并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker

方法三: Dragonfly

这个方法不介绍了,因为我也没有尝试,也需要较大运存才可以,支持 Docker、Containerd、Kubernetes

方法四: 小运存方案[我用的方案 | 推荐]

优点:运存需求极小

缺点:只能加速、缓存,不能当做镜像站,且操作起来略麻烦

支持:Docker

由于我的服务器只有1G运存且还要跑一些别的东西,实在无力招架上面三种方案,因此我绞尽GPT的脑汁,想出来了这种方案。

我这种方案用到了SSL证书,我不确定不用SSL证书行不行(因为我原来就有),建议可以通过Cloudflare申请个免费的SSL证书,网上教程很多,这里不多赘述(我就是这么做的),下面直接上正文:

  1. 创建一个文件夹,然后在里面创建nginx.conf文件,内容如下:
server {
    listen 443 ssl;
    server_name docker_proxy;

    ssl_certificate     /etc/nginx/certs/fullchain.cer;
    ssl_certificate_key /etc/nginx/certs/xxx.com.key;

    location / {
        proxy_pass http://registry:5000;
    }
}

注意这里面的路径不需要修改,只需要修改文件名即可,因为这不是服务器路径,是容器内部的路径。

  1. 在同一个目录下,创建docker-compose.yml编排文件,内容如下:
version: '3'

services:
  registry:
    image: registry
    container_name: registry-mirror
    restart: always
    environment:
      - REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io
    volumes:
      - ./registry:/var/lib/registry
    expose:
      - "5000"

  nginx:
    image: nginx
    container_name: registry-nginx
    restart: always
    ports:
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
      - ./certs:/etc/nginx/certs:ro
    depends_on:
      - registry

  1. 然后给你的SSL文件夹拷贝到该路径下,并取名为certs

到这一步,你的文件夹下应该有三个东西:

  1. nginx.conf
  2. docker-compose.yml
  3. certs 文件夹(里面是SSL公私钥)
  1. 然后执行下面命令,启动编排文件:
docker compose up -d

此时会启动两个容器,然后你在本地的 Docker 配置文件中,加上你的加速地址即可,注意是https开头的哦。

  1. 使用

编辑/etc/docker/daemon.json文件,加入以下内容:

{
  "registry-mirrors": ["https://xxxx.com"]
}

加载配置文件并重启docker

sudo systemctl daemon-reload
sudo systemctl restart docker

其它

在一些Docker Desktop客户端版本中(比如Mac),是没有/etc/docker/daemon.json文件的,你需要右上角设置里面手动添加配置,如下:

红框内便是你要编辑的内容,因涉及隐私,我打了 马 赛 克

最后,来一张封面:

到此这篇关于Docker搭建镜像加速站的四种方法实现的文章就介绍到这了,更多相关Docker 镜像加速站内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker镜像推送(push)到Docker Hub的实现

    Docker镜像推送(push)到Docker Hub的实现

    这篇文章主要介绍了Docker镜像推送(push)到Docker Hub的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • docker compose 一键部署分布式配置中心Apollo的过程详解

    docker compose 一键部署分布式配置中心Apollo的过程详解

    这篇文章主要介绍了docker compose 一键部署分布式配置中心Apollo,今天我们使用Docker来进行搭建,毕竟Docker对于开发者来说更友好一些,需要的朋友可以参考下
    2021-09-09
  • Docker如何部署您的第一个应用程序

    Docker如何部署您的第一个应用程序

    这篇文章主要介绍了Docker如何部署您的第一个应用程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Docker中忽略文件的实现

    Docker中忽略文件的实现

    Docker忽略文件是指在Docker镜像构建过程中,用于忽略指定文件或目录的一种机制,本文主要介绍了Docker中忽略文件的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Docker cp命令详解之如何在Docker容器和主机之间复制文件/文件夹

    Docker cp命令详解之如何在Docker容器和主机之间复制文件/文件夹

    要从Docker容器中复制文件,可以使用docker cp命令,下面这篇文章主要给大家介绍了关于Docker cp命令详解之如何在Docker容器和主机之间复制文件/文件夹的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • 使用Docker Compose编排本地容器的详细步骤

    使用Docker Compose编排本地容器的详细步骤

    Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具,通过 docker-compose.yml 文件,你可以轻松地将多个本地容器组合成一个完整的应用,本文给大家介绍了使用Docker Compose编排本地容器的详细步骤,需要的朋友可以参考下
    2025-09-09
  • dockerfile中su命令切换用户激活环境,报错su: invalid option -- ‘n‘

    dockerfile中su命令切换用户激活环境,报错su: invalid option 

    本文主要介绍了dockerfile中su命令切换用户激活环境以及报错su: invalid option -- ‘n‘的问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2025-01-01
  • Docker与Golang的巧妙结合

    Docker与Golang的巧妙结合

    这篇文章主要介绍了Docker与Golang的巧妙结合的相关资料,需要的朋友可以参考下
    2016-10-10
  • 在docker中部署并启动redis的方法

    在docker中部署并启动redis的方法

    这篇文章主要介绍了在docker中部署并启动redis的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • docker容器启动后如何修改或添加端口

    docker容器启动后如何修改或添加端口

    这篇文章主要介绍了docker容器启动后如何修改或添加端口问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04

最新评论