最近我在使用 Docker 的時候,發現拉取鏡像和推送鏡像速度非常慢,甚至有時候無法訪問 Docker Hub。經過了一些試驗和研究,我意識到這是因為 Docker 官方倉庫在國內的訪問速度較慢。
$ docker pull ubuntu Using default tag: latest latest: Pulling from library/ubuntu e7bb522d92ff: Pull complete 5e5b5bd5a01a: Pull complete ... Digest: sha256:fd25ecdafb33f4d2ae4a6ca1aa7e8b6a303e6d8baacbc12f92cae6e6fa97ca7d Status: Downloaded newer image for ubuntu:latest
在上面的例子中,我們可以看到拉取 Ubuntu 鏡像的時間較長,而且拉取的速度也不是很快。這是因為 Docker 鏡像是從 Docker Hub 下載的,而 Docker Hub 的服務器如果離我們比較遠,那么就會導致下載速度變慢。
有一些方法可以解決這個問題。首先,我們可以嘗試更換 Docker Hub 的鏡像源。在國內,常用的 Docker 鏡像源有 DaoCloud、阿里云等等。我們可以在 /etc/docker/daemon.json 文件中添加以下內容:
{ "registry-mirrors": ["https://registry.docker-cn.com"] }
這個操作會將 Docker Hub 的鏡像源更換為 registry.docker-cn.com。如果還是覺得速度慢,可以嘗試更換別的鏡像源。可以參考 DaoCloud 的文檔:https://www.daocloud.io/mirror#accelerator-doc。
另外,我們也可以使用代理服務器來加速 Docker 的下載和上傳。例如,我們可以使用 Shadowsocks 或者 VPN 等工具來連接到一個境外的代理服務器,然后在 Docker 中設置代理,使得 Docker 的網絡請求會經過代理服務器。
$ docker --engine-env HTTP_PROXY=http://: pull ubuntu $ docker --engine-env HTTPS_PROXY=https:// : pull ubuntu
在使用以上的方式之后,就可以快速下載鏡像了。如果還是無法解決問題,建議聯系 Docker Hub 的官方客服進行詢問。
上一篇mysql關閉超時
下一篇python 庫房管理