系統(tǒng)環(huán)境: CentOS 7.2
192.168.0.179:Docker倉庫
192.168.0.60:客戶端
安裝并啟動docker
1
2
3
|
yum -y install docker systemctl start docker systemctl enable docker |
搭建私有倉庫
179上下載registry鏡像
1
|
docker pull registry |
防火墻添加運行5000端口
1
|
iptables -I INPUT 1 -p tcp --dport 5000 -j ACCEPT |
下載完之后我們通過該鏡像啟動一個容器
docker run -d -p 5000:5000 --privileged=true -v /opt/registry:/tmp/registry registry
參數(shù)說明:
-v /opt/registry:/tmp/registry :默認情況下,會將倉庫存放于容器內(nèi)的/tmp/registry目錄下,指定本地目錄掛載到容器
–privileged=true :CentOS7中的安全模塊selinux把權(quán)限禁掉了,參數(shù)給容器加特權(quán),不加上傳鏡像會報權(quán)限錯誤(OSError: [Errno 13] Permission denied: ‘/tmp/registry/repositories/liibrary')或者(Received unexpected HTTP status: 500 Internal Server Error)錯誤
客戶端上傳鏡像
修改/etc/sysconfig/docker(Ubuntu下配置文件地址為:/etc/init/docker.conf),增加啟動選項(已有參數(shù)的在后面追加),之后重啟docker,不添加報錯,https證書問題。
1
2
|
OPTIONS= '--insecure-registry 192.168.0.179:5000' #CentOS 7系統(tǒng) other_args= '--insecure-registry 192.168.0.179:5000' #CentOS 6系統(tǒng) |
因為Docker從1.3.X之后,與docker registry交互默認使用的是https,而此處搭建的私有倉庫只提供http服務(wù)
在docker公共倉庫下載一個鏡像
1
|
docker pull docker.io /centos |
來修改一下該鏡像的tag
1
|
docker tag centos 192.168.0.179:5000 /centos |
把打了tag的鏡像上傳到私有倉庫
1
|
docker push 192.168.0.179:5000 /centos |
客戶端添加私有倉庫地址
1
2
|
# 添加這一行 ADD_REGISTRY= '--add-registry 192.168.0.179:5000' |
加上后,search鏡像,私有倉庫和docker hub上都會顯示;
不加搜索私有倉庫,需要命令中指定私有倉庫ip
使用倉庫中的鏡像
查詢私有倉庫中的所有鏡像,使用docker search命令:
1
2
|
curl -u myuser https: //registry_ip :5000 /v1/search curl registry_ip:5000 /v1/search |
1
2
|
docker search registry_ip:5000/ #centos 7 docker search registry_ip:5000 /library #centos 6 |
查詢倉庫中指定賬戶下的鏡像,則使用如下命令:
1
|
docker search registry_ip:5000 /account/ |
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:http://blog.csdn.net/fgf00/article/details/52040492