CentOS 7 : Docker私有倉庫搭建和使用
系統環境: CentOS 7.2
192.168.0.179:docker倉庫
192.168.0.60:客戶端
安裝並啟動docker
yum -y install docker
systemctl start docker
systemctl enable docker
搭建私有倉庫
179上下載registry鏡像
docker pull registry
防火墻添加運行5000端口
iptables -I INPUT 1 -p tcp --dport 5000 -j ACCEPT
下載完之後我們通過該鏡像啟動一個容器
docker run -d -p 5000:5000 --privileged=true -v /opt/registry:/tmp/registry registry
參數說明:
-v /opt/registry:/tmp/registry :默認情況下,會將倉庫存放於容器內的/tmp/registry目錄下,指定本地目錄掛載到容器
–privileged=true :CentOS7中的安全模塊selinux把權限禁掉了,參數給容器加特權,不加上傳鏡像會報權限錯誤(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),增加啟動選項(已有參數的在後面追加),之後重啟docker,不添加報錯,https證書問題。
OPTIONS=‘--insecure-registry 192.168.0.179:5000‘ #CentOS 7系統
other_args=‘--insecure-registry 192.168.0.179:5000‘ #CentOS 6系統
因為Docker從1.3.X之後,與docker registry交互默認使用的是https,而此處搭建的私有倉庫只提供http服務
在docker公共倉庫下載一個鏡像
docker pull docker.io/centos
來修改一下該鏡像的tag
docker tag centos 192.168.0.179:5000/centos
把打了tag的鏡像上傳到私有倉庫
docker push 192.168.0.179:5000/centos
客戶端添加私有倉庫地址
# 添加這一行
ADD_REGISTRY=‘--add-registry 192.168.0.179:5000‘
加上後,search鏡像,私有倉庫和docker hub上都會顯示;
不加搜索私有倉庫,需要命令中指定私有倉庫ip
使用倉庫中的鏡像
查詢私有倉庫中的所有鏡像,使用docker search命令:
curl -u myuser https://registry_ip:5000/v1/search
curl registry_ip:5000/v1/search
docker search registry_ip:5000/ #centos 7
docker search registry_ip:5000/library #centos 6
查詢倉庫中指定賬戶下的鏡像,則使用如下命令:
docker search registry_ip:5000/account/
CentOS 7 : Docker私有倉庫搭建和使用