1. 程式人生 > >CentOS 7 : Docker私有倉庫搭建和使用

CentOS 7 : Docker私有倉庫搭建和使用

docker reg expect use 啟動 倉庫 AR 通過 sel

系統環境: 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私有倉庫搭建和使用