From 278e6746f9d17633fc6bcac5f27f2d36700eda04 Mon Sep 17 00:00:00 2001 From: dqzboy Date: Wed, 22 Apr 2026 16:30:26 +0800 Subject: [PATCH] docs: update README.en.md --- README.en.md | 277 +++++++++++++++++++++------------------------------ 1 file changed, 114 insertions(+), 163 deletions(-) diff --git a/README.en.md b/README.en.md index b41ebd3..2747b8d 100644 --- a/README.en.md +++ b/README.en.md @@ -6,7 +6,7 @@


- Self-built Docker image acceleration service, based on the official registry, one-click deployment of Docker, K8s, Quay, Ghcr, Mcr, elastic, nvcr and other image acceleration management services. + Self-hosted Docker image acceleration service — one-click deployment for Docker, K8s, Quay, Ghcr, Mcr, Elastic, NVCR and other registry proxy/management services.

@@ -27,195 +27,146 @@ --- ## 📝 Preparation -⚠️ **Important:** Choose a server located abroad and not blocked in your region. For the domain name, there is no need to register it with domestic authorities. You can also apply for a free domain through various platforms. During the one-click deployment process, if you choose to install Caddy, it will automatically configure HTTPS. If you opt to deploy Nginx, you'll need to apply for a free SSL certificate yourself or use other methods to implement SSL encryption. - -> High-Cost-Effective Overseas VPS Recommendation: [Click to View](Ad/README.md) +⚠️ **Important**: Choose a server located outside China and ensure it is not blocked. For domains, domestic ICP filing is not required. You can obtain free domains from various providers. If you choose to install Caddy during the one-click deployment, HTTPS will be configured automatically. If you choose Nginx, you will need to obtain and configure an SSL certificate yourself (for example via Let's Encrypt or Cloudflare).
-Free domain certificate application +Free domain / TLS certificate options
-**Method one:** [Acme.sh Automatically Generate and Renew Lets Encrypt Free SSL Certificate](https://www.dqzboy.com/16437.html) +**Option 1:** Use Acme.sh to automatically obtain and renew Let's Encrypt certificates — guide: https://www.dqzboy.com/16437.html -**Method two:** Domain hosted to[Cloudflare enabling free SSL certificate](https://www.cloudflare.com/zh-cn/application-services/products/ssl/) +**Option 2:** Host your DNS on Cloudflare and enable its free SSL/TLS service. -**Method Three:** You can apply for a free domain certificate (typically a DV certificate) through a third-party platform, suitable for personal websites, blogs, and small projects. +**Option 3:** Use third-party providers that offer free DV certificates suitable for personal sites and small projects. +
-If you don't have the environment mentioned above, you can try the following several schemes +Alternative deployment options if you lack the recommended environment
-**Scheme one:** 🚀 🚀 If you don't have the things mentioned above, you can also deploy to **[Render](Render/README.md)** +**Scheme 1:** Deploy to free or low-cost cloud platforms such as [ClawCloud](cloud/ClawCloud/README.md) or [Render](cloud/Render/README.md). -**Scheme two:** If you only have one server and don't want to deal with domain names or configure TLS, then you can configure Docker's configuration file `daemon.json`, and specify `insecure-registries` to configure your image acceleration address +**Scheme 2:** If you have a single server and do not want to use a domain or TLS, configure Docker's `/etc/docker/daemon.json` with `insecure-registries` to point to your proxy. -**Scheme three:** If you're deploying on a server within China, you can configure proxies while executing one-click deployment, which will also help solve the problem of Docker not being able to install domestically +**Scheme 3:** When deploying from within China, the installer can configure HTTP proxy settings to help install Docker and Docker Compose. +**Scheme 4:** Use the Cloudflare Workers based proxy project: https://github.com/dqzboy/Workers-Proxy-Docker + +
- -> **During the deployment process, if you encounter any issues or questions, please scroll down to find the [problem](Issue/issue.en.md), see if your situation has been listed! Try to resolve it yourself first.** - --- - - - - - - - - - -
海外服务器海外服务器
- - RackNerd - - - - CloudCone - -
+> **If you encounter issues during deployment, check the problem summary:** [Issue/issue.md](Issue/issue.md). Try to troubleshoot using the documented cases first. + + +--- + +## 🔨 Features +- One‑click deployment of Docker registry proxy services, supporting multiple upstream registries (Docker Hub, ghcr, quay, k8s, mcr.microsoft.com, docker.elastic.co, nvcr, etc.). +- Automatic environment checks and installation of dependencies (Docker, Docker Compose, Nginx, Caddy, etc.). +- Automatic generation of Nginx/Caddy reverse‑proxy configuration for selected services. +- Optional Docker Hub authentication to pull private images and mitigate Docker Hub rate limits (see docs/issues for configuration). +- Configurable proxy cache TTL (`PROXY_TTL`) and IP whitelist/blacklist for access control. +- Service management, configuration management, uninstall, and authentication features for day‑to‑day operations. +- One‑click configuration for local Docker daemon proxy and container HTTP proxy (`HTTP_PROXY`) — HTTP only. +- Installer helpers for servers inside China to work around Docker/Compose installation issues. +- Includes HubCMD‑UI web panel for browsing, image search, documentation, container management, and monitoring alerts. + ## 📦 Deploy -### Deploy through project script +### Deploy using the project installer script ```shell -# CentOS && RHEL && Rocky +# CentOS / RHEL / Rocky yum -y install curl -# ubuntu && debian +# Ubuntu / Debian apt -y install curl -# overseas environment +# For environments outside China (recommended) bash -c "$(curl -fsSL https://raw.githubusercontent.com/dqzboy/Docker-Proxy/main/install/DockerProxy_Install.sh)" -# domestic environment +# For domestic environments: CDN mirror bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/dqzboy/Docker-Proxy/install/DockerProxy_Install.sh)" + +# Alternative GitHub raw proxy +bash -c "$(curl -fsSL https://ghp.ci/https://raw.githubusercontent.com/dqzboy/Docker-Proxy/main/install/DockerProxy_Install.sh)" ``` -### Deployment to Third-Party Platforms +- **Hubcmd-UI** panel can be installed via the installer script. Demo: https://dqzboy.github.io/proxyui/ (use after deployment to see full features). + +``` +Run the installer and select options: 2 ---> 8 ---> 1 +``` + +### Deploy to third‑party platforms +
+Deploy to Claw Cloud +
+ +Claw Cloud may provide free credits and easy deployment — see cloud/ClawCloud/README.md for instructions. + +
+
+
Deploy to Render
-> Render offers a free quota, and you can further increase the quota after adding a card. - -Deploy quickly with Render: [View Tutorial](Render/README.md) +Render provides free tiers; see cloud/Render/README.md for a quick guide. +
Deploy to Koyeb
-> The domain name assigned by Koyeb is not very stable when accessed in the domestic area, not highly recommended! - -Deploy quickly with Koyeb: [View Tutorial](Koyeb/README.md) +Koyeb's assigned domains may be unstable for some regions; see cloud/Koyeb/README.md for details. +
-### Docker Compose Deployment +### Docker Compose deployment
-Manual Container Deployment +Manual container deployment (expand)
-**⚠️ Note:** Download the configuration for whichever mirror repository you need to accelerate. The `docker-compose.yaml` file by default deploys the acceleration service for all foreign mirror repositories, again you configure whichever one you deploy, and delete the rest! +**⚠️ Note:** Download the config file for the registries you need. The `docker-compose.yaml` includes many services by default — keep only the ones you will run. -**1.** Download the corresponding `yml` file from the [config](https://github.com/dqzboy/Docker-Proxy/tree/main/config) directory to your local machine. +1. Download the corresponding `yml` from the [config](https://github.com/dqzboy/Docker-Proxy/tree/main/config) directory. -**2.** Download the [docker-compose.yaml](https://github.com/dqzboy/Docker-Proxy/blob/main/docker-compose.yaml) file to your local machine and place it in the same directory level as the configuration file. +2. Download `docker-compose.yaml` to the same directory as the config files. -**3.** Execute the `docker compose` command to start the container service. +3. Start containers: ```shell docker compose up -d -# View container logs -docker logs -f [Container ID or Name] +# Start a specific service, for example the Docker Hub proxy +docker compose up -d dockerhub + +# View logs +docker logs -f [CONTAINER_ID_OR_NAME] ``` -**4.** If you are not familiar with Nginx or Caddy, you can use a service you are familiar with for proxying. You can also access directly via IP and port number. +4. If you are not familiar with Nginx or Caddy, you can use any reverse proxy you prefer, or access services directly via IP and port. +
-## 🔨 Features -- [x] One-click deployment of Docker image proxy services, supporting proxy based on the official Docker Registry. -- [x] Supports proxy for multiple image repositories, including Docker Hub, GitHub Container Registry (ghcr.io), Quay Container Registry (quay.io), Kubernetes Container Registry (k8s.gcr.io), Microsoft Container (mcr.microsoft.com), Elastic Stack (docker.elastic.co). -- [x] Automatically checks for and installs required dependency software such as Docker, Nginx/Caddy, etc., and ensures the system environment meets the operational requirements. -- [x] Automatically renders the corresponding Nginx or Caddy service configuration based on the service you choose to deploy. -- [x] Supports login to Docker Hub with configured account password to access private mirrors on Docker Hub and solve the download frequency limitation of Docker Hub. -- [x] Support custom configuration of proxy cache time(PROXY_TTL)、Support configuring IP whitelist and blacklist to prevent malicious attacks. -- [x] Provides features for restarting services, updating services, updating configurations, and uninstalling services, making it convenient for users to perform daily management and maintenance. -- [x] Supports user selection of whether to provide authentication during deployment. -- [x] Supports configuration of proxy (HTTP_PROXY), only supports HTTP. -- [x] Solves the problem of being unable to install Docker services in the domestic environment. -- [x] Supports mainstream Linux distribution operating systems, such as CentOS, Ubuntu, Rocky, Debian, RHEL, etc. -- [x] Supports deployment on mainstream ARCH architectures, including linux/amd64, linux/arm64. - -## ✨ Tutorial -#### Configure Nginx Reverse Proxy -> **Note**: If you choose to deploy with Nginx, after the proxy program is deployed, you need to configure Nginx yourself.
- -**1.Download the [registry-proxy.conf](https://raw.githubusercontent.com/dqzboy/Docker-Proxy/main/nginx/registry-proxy.conf) configuration file from the repository to your Nginx service and modify the domain name and certificate sections in the configuration**
-**2.Resolve the corresponding access domain name to the IP of the machine where the Docker proxy service is deployed at your DNS service provider**
-**3.Modify the Docker daemon.json configuration to configure your self-built Registry address. Restart Docker after modification** -```shell -~]# vim /etc/docker/daemon.json -{ - "registry-mirrors": [ "https://hub.your_domain_name" ], - "log-opts": { - "max-size": "100m", - "max-file": "5" - } -} -``` - -> **Explanation:** After configuring the daemon.json, you no longer need to specify your acceleration address when pulling images; simply execute docker pull to retrieve the images you need. The following steps are for when you have not configured the daemon.json, and you need to include your acceleration address to pull images normally. - ---- - -**1. Replace the official Registry address with your own Registry address to pull the image.** -```shell -# Docker Hub Registry -## Original: nginx:latest -## Replace with: -docker pull hub.your_domain_name/library/nginx:latest - -# Google Registry -## Original: gcr.io/google-containers/pause:3.1 -## Replace with: -docker pull gcr.your_domain_name/google-containers/pause:3.1 -``` - -**2. Prefix replacement reference for the Registry.** - -| Source | Replace with | Platform | -|-------|---------------|----------| -| docker.io | hub.your_domain_name | docker hub -| gcr.io | gcr.your_domain_name | Google Container Registry -| ghcr.io | ghcr.your_domain_name | GitHub Container Registry -| k8s.gcr.io | k8s-gcr.your_domain_name | Kubernetes Container Registry -| registry.k8s.io | k8s.your_domain_name | Kubernetes's container image registry -| quay.io | quay.your_domain_name | Quay Container Registry -| mcr.microsoft.com | mcr.your_domain_name | Microsoft Container Registry -| docker.elastic.co | elastic.your_domain_name | Elastic Stack -| nvcr.io | nvcr.your_domain_name | NVIDIA Container Registry - ---- - -> **Detailed Tutorial:**
-> [Self-built Docker Image Acceleration Service: Accelerating and Optimizing Image Management](https://www.dqzboy.com/8709.html)
-> [Build your own Docker image acceleration, and host the domain name to CF to accelerate image pulling.](https://www.dqzboy.com/17665.html) +## ✨ Usage guide +Full usage and configuration examples are available in the docs: https://dqzboy.github.io/docs/pages/install.html -## 💻 Hubcmd-UI -> HubCMD-UI Manual Installation Guide: [View Tutorial](hubcmdui/README.md) +## 💻 HubCMD‑UI +> HubCMD‑UI manual installation: hubcmdui/README.md + +> HubCMD-UI 手动安装教程:[点击查看教程](hubcmdui/README.md) + +> HubCMD-UI 演示环境 [点击查看](https://ufxsgwxleywi.ap-southeast-1.clawcloudrun.com/)
@@ -245,53 +196,45 @@ docker pull gcr.your_domain_name/google-containers/pause:3.1
---- -## 🫶 Sponsorship -If you find this project helpful, please give it a Star. And if possible, you can also give me a little support. Thank you very much for your support.😊 +## 💌 Promotion + - - + + + + + + + + - - + + +
Alipay WeChat Pay 描述信息图文介绍
+ 提供高性价比的海外VPS,支持多种操作系统,适合搭建Docker代理服务。 + + + RackNerd + +
+ CloudCone 提供灵活的云服务器方案,支持按需付费,适合个人和企业用户。 + + + CloudCone + +
---- - -## 👨🏻‍💻 Issue - -
-Problem Summary -
- -> Summary of common issues related to deployment and usage, welcome to add more! - -Problem Summary: [Click to view](Issue/issue.en.md) - -
- ---- - -## 😺 Other - -Open Source is not easy, if you reference this project or make modifications based on it, could you please credit this project in your documentation? Thank you! - - -## ❤ Acknowledgements -Thanks to the open source contributions of the following projects: - -[CNCF Distribution](https://distribution.github.io/distribution/) - -[docker-registry-browser](https://github.com/klausmeyer/docker-registry-browser) +##### *Telegram Bot: [Click to contact](https://t.me/RelayHubBot) | E-Mail: support@dqzboy.com* +**Only merchants with long-term stable operations and a solid reputation are accepted.* ## 🤝 Contributing - Thanks to everyone who has contributed! @@ -299,6 +242,14 @@ Thanks to everyone who has contributed! +## ❤ Acknowledgements +This project builds on the work of several open‑source projects including: + +[CNCF Distribution](https://distribution.github.io/distribution/) + +[docker-registry-browser](https://github.com/klausmeyer/docker-registry-browser) + + ## License Docker-Proxy is available under the [Apache 2 license](./LICENSE)