Docker: docker pull, wget, curl, git clone 等如何更快?

1) Docker 配置

1.1) daemon.json 配置鏡像

registry-mirrors 設定鏡像,加速 docker pull 官方鏡像。如下舉例爲阿里源。git

{
  "experimental": true,
  "features": { "buildkit": true },
  "registry-mirrors": ["https://<your token>.mirror.aliyuncs.com"]
}

1.2) config.json 配置代理

proxies 設定 HTTP, HTTPS 代理,加速如 wget, curl 等 HTTP 請求。docker

{
  "proxies": {
    "default": {
      "httpProxy": "http://192.168.1.100:7890",
      "httpsProxy": "http://192.168.1.100:7890",
      "noProxy": "localhost, 127.0.0.0/8, ::1"
    }
  }
}

若是沒有代理服務可用,可參考後文其餘加速方式。json

2) 其餘加速方式

2.1) 包管理工具配置各自鏡像

apt pip 等,能夠配置其各自的鏡像源。經常使用鏡像源,可見:curl

2.2) 代碼倉庫鏡像到國內平臺

git clone 原倉庫太慢,可於國內代碼託管站點(如 Gitee)上找下鏡像或本身導入一份,而後 git clone 鏡像倉庫地址。工具

2.3) 預先下載文件並使用

有些文件只好直接下載,但太慢。或者文件太大,每次下載太耗時。能夠預先用其餘工具或渠道下載好後再使用。ui

使用方式一: ADD/COPY

Dockerfile ADD/COPY 此文件。但由於 ADD/COPY 會增長增長層級、鏡像變大,因此只建議用在不用刪除清理的文件。而像安裝包等,不建議用此辦法。url

這時,能夠用 Docker 的多階段構建避免此問題,參見文檔 Use multi-stage buildsspa

但,這裏建議用方式二: HTTP Server 。代理

使用方式二: HTTP Server

啓用 HTTP 靜態文件服務,方法可見這裏code

這樣,仍依照 Dockerfile 最佳實踐, RUN 時 wget, curl 下載。只是改下下載地址,也能夠把下載地址設成 ARG 參數。

結語

Go coding!


分享 Coding 中實用的小技巧、小知識!歡迎關注,共同成長!

GoCoding_WeChat.png

相關文章
相關標籤/搜索