Docker: docker pull, wget, curl, git clone 等如何更快?
1) Docker 配置
1.1) daemon.json
配置鏡像
- 路徑: /etc/docker/daemon.json
- 文檔: Config Daemon
registry-mirrors
設定鏡像,加速 docker pull
官方鏡像。以下舉例為阿里源。
{
"experimental": true,
"features": { "buildkit": true },
"registry-mirrors": ["//<your token>.mirror.aliyuncs.com"]
}
1.2) config.json
配置代理
- 路徑: ~/.docker/config.json
- 文檔: Network Proxy
proxies
設定 HTTP, HTTPS 代理,加速如 wget, curl 等 HTTP 請求。
{
"proxies": {
"default": {
"httpProxy": "//192.168.1.100:7890",
"httpsProxy": "//192.168.1.100:7890",
"noProxy": "localhost, 127.0.0.0/8, ::1"
}
}
}
如果沒有代理服務可用,可參考後文其他加速方式。
2) 其他加速方式
2.1) 包管理工具配置各自鏡像
如 apt
pip
等,可以配置其各自的鏡像源。常用鏡像源,可見:
- 清華源: //mirrors.tuna.tsinghua.edu.cn/
- 中科大: //mirrors.ustc.edu.cn/
- 阿里源: //developer.aliyun.com/mirror/
- 網易源: //mirrors.163.com/
2.2) 程式碼倉庫鏡像到中國平台
git clone
原倉庫太慢,可於中國程式碼託管站點(如 Gitee)上找下鏡像或自己導入一份,然後 git clone
鏡像倉庫地址。
2.3) 預先下載文件並使用
有些文件只好直接下載,但太慢。或者文件太大,每次下載太耗時。可以預先用其他工具或渠道下載好後再使用。
使用方式一: ADD/COPY
Dockerfile ADD/COPY
此文件。但因為 ADD/COPY
會增加增加層級、鏡像變大,所以只建議用在不用刪除清理的文件。而像安裝包等,不建議用此辦法。
這時,可以用 Docker 的多階段構建避免此問題,參見文檔 Use multi-stage builds 。
但,這裡建議用方式二: HTTP Server 。
使用方式二: HTTP Server
啟用 HTTP 靜態文件服務,方法可見這裡,
這樣,仍依照 Dockerfile 最佳實踐, RUN
時 wget, curl 下載。只是改下下載地址,也可以把下載地址設成 ARG
參數。
結語
Go coding!