Docker 創建 Private Repositories
前言
基於GFW的緣故,國內大陸基本無法pull國外的鏡像,更別說官方的index了。如果images無法pull下來,那么docker就失去了存在的意義,就更別提國內廣大程序猿為docker而獻身奮斗了。所以基於此,筆者認為有必要國內用戶自行搭建一個Private Repositories。一方面為了更好的研究,使用Docker。另一方面也是為了節省pull和push的時間,要不然動不動就是幾十分鍾的耗時,誰能承擔起這些時間成本。最后一點,也是為了可以更好的管理images,畢竟國內很過公司出於各種目的還是不希望公開這些images。
所以基於此,創建一個Private Repository就顯得尤為必要了。
步驟
方法一:
最簡單的方法莫過於直接pull下來,docker官網提供的registry鏡像了。但是需要說明的是官網目前提供的最新版本不穩定,有bug(筆者目前看到的最新版本為0.8.1,所有版本可以在https://registry.hub.docker.com/_/registry/tags/manage/查看)。而且下面各國網友也反映了,0.8.1的確存在問題。因此,筆者經過多次評測,選取了最穩定的0.7.1版本。
執行以下命令既可完成private repository的創建:
docker run -d -p 5000:5000 --name registry registry:0.7.1
方法二:
使用git上面的源碼進行創建。
首先登陸到docker在git上面的源碼頁面,https://registry.hub.docker.com/_/registry/ 。
因為目前最新的0.8.1版本存在bug,因此我們需要tag為0.7.1的版本。在頁面上部選擇tag 0.7.1即可。
考慮到國內的網速,所以建議直接下載zip壓縮包。在頁面右側,選擇Download ZIP。把0.7.1版本下載下來。
將ZIP壓縮包上傳到服務器(推薦使用Ubuntu),解壓后即為Docker 源碼。
我們下面的步驟是安裝registry到本地服務器上,你也可以選擇將source build成image,然后執行image。
安裝registry到本地服務器的步驟:
Install the system requirements for building a Python library:
sudo apt-get install build-essential python-dev libevent-dev python-pip liblzma-dev
Then install the Registry app:
sudo pip install docker-registry
等待安裝完成后,執行命令開始運行registry:
gunicorn --access-logfile - --debug -k gevent -b 0.0.0.0:5000 -w 1 docker_registry.wsgi:application
方法三:
同樣基於git的源碼,我們build成image,然后執行這個image。
在docker_registry目錄里面:
docker build -t registry .
build執行完之后,同樣執行:
docker run -d -p 5000:5000 registry
總結
方法一和方法三,均需要download 國外的一些images,因此國內的使用存在局限性。而方法二,完全不依賴國外數據,但需要一些docker操作基礎和git操作基礎。
大家在使用時,就需要考慮實際情況來選擇安裝方式了。