我們可能希望構建和存儲包含不想公開的信息或數據的鏡像,因爲Docker公司的團隊開源了docker-registry的代碼,這樣我們就可以基於此代碼在內部運行自己的registry。
服務端
1.拉去倉庫鏡像
[root@slave5 ~]# docker pull registry:2.1.1
2.查看容器
[root@slave5 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 38802006b373 docker.io/registry:2.1.1 "/bin/registry /etc/ 24 hours ago Up 5 minutes 0.0.0.0:5000->5000/tcp registry
3.啓動容器
[root@slave5 ~]# docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:2.1.1 重要:默認情況下,會將倉庫存放於容器的/var/lib/registry目錄下,這樣如果容器被刪除,則存放於容器中的鏡像也會丟失,所以我們一般情況下會指定本地一個目錄掛載到容器的/opt/registry下, 兩個目錄下都有! ·registry的默認存儲路徑是/tmp/registry,只是個臨時目錄,一段時間之後就會消失 ·所以使用-v參數,指定個本地持久的路徑。
4.訪問http://ip:5000端口,出現如下界面,則代表倉庫安裝成功
客戶端
拉取鏡像
[root@slave5 ~]# docker pull busybox
2.爲鏡像打標籤
[root@slave5 ~]# docker tag docker.io/busybox 192.168.0.38:5000/busybox [root@slave5 ~]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE docker.io/busybox latest 0064fda8c45d 5 days ago 1.113 MB <none> <none> 42316db2cd8d 12 days ago 187.9 MB docker.io/registry latest a8706c2bfd21 2 weeks ago 422.8 MB docker.io/ubuntu 14.04 d55e68e6cc9c 2 weeks ago 187.9 MB
3.編輯docker配置文件,指定私有倉庫url
[root@slave5 ~]# vim /etc/sysconfig/docker
OPTIONS=
'--insecure-registry 192.168.0.38:5000 '
[root@slave ~]# service docker restart
4.上傳鏡像到倉庫
docker push 192.168.0.38:5000/busybox
5.查看私有倉庫
[root@slave ~]# curl 192.168.0.38:5000/v1/search
{
"num_results"
: 1,
"query"
:
""
,
"results"
: [{
"description"
:
""
,
"name"
:
"library/busybox"
}]}