克服跨洋網(wǎng)絡(luò)延遲,使用Docker Hub Mirror加速Docker官方鏡像下載
Docker之所以這么吸引人,除了它的新穎的技術(shù)外,圍繞官方Registry(Docker Hub)的生態(tài)圈也是相當(dāng)吸引人眼球的地方。
在Docker Hub上你可以很輕松下載到大量已經(jīng)容器化的應(yīng)用鏡像,即拉即用。這些鏡像中,有些是Docker官方維護(hù)的,更多的是眾多開(kāi)發(fā)者自發(fā)上傳分享的。而且你還可以在Docker Hub中綁定你的代碼托管系統(tǒng)(目前支持Github和Bitbucket)配置自動(dòng)生成鏡像功能,這樣Docker Hub會(huì)在你代碼更新時(shí)自動(dòng)生成對(duì)應(yīng)的Docker鏡像,是不是很方便?
不幸的是,Docker Hub并沒(méi)有在國(guó)內(nèi)部署服務(wù)器或者使用國(guó)內(nèi)的CDN服務(wù),因此在國(guó)內(nèi)特殊的網(wǎng)絡(luò)環(huán)境下,鏡像下載十分耗時(shí),少則二十分鐘,多則數(shù)十小時(shí)。為了克服跨洋網(wǎng)絡(luò)延遲,能夠快速高效地下載Docker鏡像,最為有效的方式之一就是:使用 DaoCloud團(tuán)隊(duì) (https://www.daocloud.io/)提供的服務(wù)Docker Hub Mirror。
Docker Hub Mirror簡(jiǎn)介
Docker Hub Mirror為全球***的Docker Registry(Docker Hub)提供在中國(guó)的鏡像代理服務(wù)。Docker Hub Mirror會(huì)為中國(guó)的用戶在國(guó)內(nèi)的服務(wù)器上緩存諸多鏡像。
當(dāng)用戶的Docker設(shè)定了--registry-mirror參數(shù)后,用戶的Docker下拉鏡像時(shí),首先去Docker Hub Mirror中查找鏡像,若命中則說(shuō)明該鏡像已經(jīng)在Docker Hub Mirror中緩存,用戶直接從Docker Hub Mirror中下載;若沒(méi)有命中,則說(shuō)該鏡像還沒(méi)有被緩存,那么Docker Hub Mirror首先會(huì)被驅(qū)使去Docker Hub中下載該鏡像,并進(jìn)行緩存,最終讓用戶從Docker Hub Miorror中下載該鏡像。
Docker Hub Mirror使用說(shuō)明
注冊(cè)Docker Hub Mirror賬號(hào)
DaoCloud提供Docker Hub Mirror服務(wù)。用戶可以進(jìn)入Docker Hub Mirror注冊(cè)入口注冊(cè)。在進(jìn)入控制臺(tái)頁(yè)面后直接點(diǎn)擊 啟動(dòng)你的加速器后,您即可得到一個(gè)Mirror的地址,將該地址配置在Docker Daemon的啟動(dòng)腳本中,重啟Docker Daemon即可使得Docker Hub Mirror配置生效。
下文分四種不同的操作系統(tǒng),來(lái)詳細(xì)闡述如歌配置Docker Hub Mirror地址。
Ubuntu:
安裝或升級(jí)Docker
Docker 1.3.2版本以上才支持Docker Hub Mirror機(jī)制,如果您還沒(méi)有安裝Docker或者版本過(guò)低,請(qǐng)安裝或升級(jí)版本。
配置Docker Hub Mirror
- sudo echo "DOCKER_OPTS=\"$DOCKER_OPTS --registry-mirror=http://xxx.m.daocloud.io\"" >> /etc/default/docker service docker restart
請(qǐng)將xxx替換為您在 DaoCloud 上注冊(cè)后,為您專屬生成的Mirror地址鏈接名。 該腳本可以將 --registry-mirror 加入到您的Docker配置文件 /etc/defaults/docker中。
盡情享受Docker Hub Mirror
Docker Hub Mirror使用不需要任何附件操作,就像這樣下載官方Ubuntu鏡像
- docker pull ubuntu
CentOS:
安裝或升級(jí)Docker
Docker 1.3.2版本以上才支持Docker Hub Mirror機(jī)制,如果您還沒(méi)有安裝Docker或者版本過(guò)低,請(qǐng)安裝或升級(jí)版本。
配置Docker Hub Mirror
- sudo sed -i 's|OPTIONS=|OPTIONS=--registry-mirror=http://xxx.m.daocloud.io |g' /etc/sysconfig/docker service docker restart
請(qǐng)將xxx替換為您在 DaoCloud 上注冊(cè)后,為您專屬生成的Mirror地址鏈接名。
該腳本可以將 --registry-mirror 加入到您的Docker配置文件/etc/defaults/docker中。
盡情享受Docker Hub Mirror
Docker Hub Mirror使用不需要任何附件操作,就像這樣下載官方Ubuntu鏡像
- docker pull ubuntu
MAC:
安裝或升級(jí)MAC版本下的Boot2Docker
Docker 1.3.2版本以上才支持Docker Hub Mirror機(jī)制,如果您還沒(méi)有安裝Docker或者版本過(guò)低,請(qǐng)安裝或升級(jí)版本。
配置Docker Hub Mirror
請(qǐng)確認(rèn)你的Boot2Docker已經(jīng)啟動(dòng),并執(zhí)行
- boot2docker ssh sudo su echo "EXTRA_ARGS=\"--registry-mirror=http://xxx.m.daocloud.io\"" >> /var/lib/boot2docker/profile && exit exit boot2docker restart
請(qǐng)將xxx替換為您在 DaoCloud 上注冊(cè)后,為您專屬生成的Mirror地址鏈接名。
盡情享受Docker Hub Mirror
Docker Hub Mirror使用不需要任何附件操作,就像這樣下載官方Ubuntu鏡像
- docker pull ubuntu
Windows:
安裝或升級(jí)MAC版本下的Boot2Docker
Docker 1.3.2版本以上才支持Docker Hub Mirror機(jī)制,如果您還沒(méi)有安裝Docker或者版本過(guò)低,請(qǐng)安裝或升級(jí)版本。
配置Docker Hub Mirror
進(jìn)入Boot2Docker Start Shell,并執(zhí)行
- sudo su echo "EXTRA_ARGS=\"--registry-mirror=http://xxx.m.daocloud.io\"" >> /var/lib/boot2docker/profile exit # 重新啟動(dòng)Boot2Docker
請(qǐng)將xxx替換為您在 DaoCloud 上注冊(cè)后,為您專屬生成的Mirror地址鏈接名
盡情享受Docker Hub Mirror
Docker Hub Mirror使用不需要任何附件操作,就像這樣下載官方Ubuntu鏡像
- docker pull ubuntu