倉(cāng)庫(kù)主要用于鏡像的存儲(chǔ)株扛,他是Docker鏡像分發(fā)缨睡、部署的關(guān)鍵
我們可以使用公有倉(cāng)庫(kù)Docker Hub搔弄,也可以搭建自己的私有倉(cāng)庫(kù)來存儲(chǔ)我們的鏡像。
一.公有倉(cāng)庫(kù)
1.創(chuàng)建Docker Hub賬戶(Web頁面創(chuàng)建即可故响,https://hub.docker.com)
2.登錄Docker Hub賬戶(Web頁面登錄傀广,Linux: docker login)
3.基本操作:
上傳鏡像:docker push IMAGE:VERSION [docker push ubuntu1404-baseimage:1.0]
搜索鏡像:docker search NAME/MESSAGE/USERNAME... [docker search centos]
下載鏡像:docker pull NAME... [docker pull centos] 下載官方提供的CentOS鏡像
二.私有倉(cāng)庫(kù)
1.安裝docker-registry
#docker run -p 5000:5000 registry [使用官方提供的docker-registry鏡像來安裝][ -e 可以設(shè)置配置參數(shù)]
#docker run \
-e SETTINGS_FLAVOR=s3 \
-e AWS_BUCKET=mybucket \
-e STORAGE_PATH=/registry \
-e AWS_KEY=myawskey \
-e AWS_SECRET=myawssecret \
-e SEARCH_BACKEND=sqlalchemy \
-l 5000:5000 \
registry [配置使用Amazon S3存儲(chǔ)鏡像]
#yum install docker-registry -y [使用rpm包安裝 ( EPEL \\Fedora Extra Packages for Enterprise Linux )]
啟動(dòng)docker-registry
#service docker-registry start
#service docker-registry status
默認(rèn)docker-registry會(huì)監(jiān)聽5000端口,啟動(dòng)八個(gè)工作進(jìn)程 /etc/docker-registry.yml時(shí)設(shè)置的
2.docker-registry配置文件
在默認(rèn)情況下彩届,docker-registry使用config_sample.yml進(jìn)行各種配置伪冰,rpm方式則使用/etc/docker-registry.yml
3.構(gòu)建安全的私有倉(cāng)庫(kù)
由于docker-registry沒有提供安全認(rèn)證服務(wù),所有知道URL的人都可以上傳鏡像樟蠕,我們需要認(rèn)證功能贮聂,可以使用Nginx構(gòu)建一個(gè)帶有認(rèn)證功能的私有倉(cāng)庫(kù)。
yum install nginx -y
創(chuàng)建/etc/nginx/conf.d/registry.conf文件
創(chuàng)建/etc/nginx/docker-registry.conf文件
用htpasswd -bc /etc/nginx/docker-registry.htpasswd USERNAME PASSWORD創(chuàng)建認(rèn)證的用戶和密碼
cat /etc/nginx/docker-registry.htpassed
【創(chuàng)建自己的CA】
#openssl genrsa -des3 -out ca-key.pem 2048
#openssl req new -x509 -days 3600 -key ca-key.pem -out ca.pem
【創(chuàng)建證書】
#openssl genrsa -des3 -out server-key.pem 2048
#openssl req -subj '/CN=dev.registry.com' -new -key server-key.pem -out server.csr
#openssl x509 -req -days 3650 -in server,csr -CA ca.pem -CAKEY ca-key.pem -out server-cert.pem
【刪除server key中的passphrase】
#openssl rsa -in server-key.pem -out server-key.pem
【安裝server-key和server-crt】
#cp server-cert.pem /etc/ssl/certs/docker-registry.crt
#cp server-key.pem /etc/ssl/private/docker-registry.key
【啟動(dòng)nginx】
#server nginx start
【客戶端安裝CA】
#update-ca-trust enable
#cp ca.pem /etc/pki/ca-trust/source/anchors/ca.crt
#update-ca-trust extract
【重啟docker】
【登錄nginx】
#docker login -u docket -p docker -e db yin@tencent.com https://dev.registry.com
會(huì)在$home/目錄下生成一個(gè).dockercfg文件寨辩,保存認(rèn)證信息
【可以上傳自己的鏡像了】
#docker image
#docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
標(biāo)記本地鏡像吓懈,并將它歸入某一倉(cāng)庫(kù)
#docker push *