由於網速和大中華區域網效果,使得我們在DockerHub下載鏡像的速度很慢,甚至一些國內的鏡像倉庫,也感覺速度不是很好。所以,很有必要在本地或者一個我們訪問很快速的地方(自己的雲伺服器)搭建一套鏡像倉庫。有了這樣一個倉庫,不僅可以提高下載速度,而且可以增加我們個性化定製的鏡像,以備後續使用。這篇將介
由於網速和大中華區域網效果,使得我們在DockerHub下載鏡像的速度很慢,甚至一些國內的鏡像倉庫,也感覺速度不是很好。所以,很有必要在本地或者一個我們訪問很快速的地方(自己的雲伺服器)搭建一套鏡像倉庫。有了這樣一個倉庫,不僅可以提高下載速度,而且可以增加我們個性化定製的鏡像,以備後續使用。這篇將介紹怎樣搭建本地鏡像。
話外篇,配置docker代理
如果有一個很快的代理,當然也可以直接通過配置docker代理,以達到快速下載鏡像的目的。在搭建本地鏡像的過程也需要從DockerHub上下載完整鏡像文件,如果訪問緩慢的話,下載將會非常緩慢。設置代理的方法非常簡單,這裡以CentOS6.5為例。
找到/etc/default/docker,打開編輯,找到下麵export http_proxy部分,去掉註釋並修改為自己的代理即可。
# Docker Upstart and SysVinit configuration file # Customize location of Docker binary (especially for development testing). #DOCKER="/usr/local/bin/docker" # Use DOCKER_OPTS to modify the daemon startup options. #DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4" # If you need Docker to use an HTTP proxy, it can also be specified here. export http_proxy="http://xxxx:port" # This is also a handy place to tweak where Docker's temporary files go. #export TMPDIR="/mnt/bigdrive/docker-tmp" DOCKER_OPTS="--insecure-registry dl.dockerpool.com:5000"
創建私有倉庫
本文記錄以Docker官方提供的鏡像Registry 創建本地私有倉庫,創建方式和啟動一個普通鏡像的方式是一樣。
1.在私有倉庫伺服器快速創建鏡像倉庫,運行如下代碼:
docker run -p 5000:5000 registry:2.0
運行上述命令後,會從DockerHub上拉取registry鏡像併在本地啟動Registry服務,並監聽5000埠。
2.列出本地鏡像
docker images
可以看到registry的鏡像和一個本地ubuntu:12.04的鏡像
3.重新標記一個本地鏡像為私有倉庫的版本,這裡將本地的ubuntu 12.04標記為localhost:5000/ubuntu:1204。
docker tag ubuntu:12.04 localhost:5000/ubuntu:1204
再次查看鏡像可以看到多了一個標記為localhost:5000/ubuntu:1204的鏡像
4.將本地鏡像推送到本地倉庫中
docker push localhost:5000/ubuntu:1204
5.查看本地倉庫中的鏡像列表
curl http://localhost:5000/v2/ubuntu/tags/list
結果如下:
{"name":"ubuntu","tags":["1204"]}
6.從本地倉庫拉取一個鏡像,在這之前先執行如下命令移除本地未使用的鏡像,保證從本地倉庫拉取的鏡像不是從緩存中獲取。
docker rmi -f $(docker images -q -a )
之後再查看鏡像,只剩下registry這個鏡像
拉取本地倉庫中的鏡像
docker pull localhost:5000/ubuntu:1204 Unable to find image 'localhost:5000/ubuntu:1204' locally 1204: Pulling from localhost:5000/ubuntu b796a17a2688: Pull complete 273721eafe54: Pull complete 7dd38dbb5eda: Pull complete 32190de3770a: Already exists
之後查看鏡像如下:
最後正常啟動
docker run --name mytestubuntu localhost:5000/ubuntu:1204