Docker是時下相當火熱的技術,關於docker的介紹此處就不多說,本文主要介紹下如何在Ubuntu 14.04環境下配置docker的本地倉庫,對於想在局域網內大規模運用docker來說,頻繁的從官網倉庫下載鏡像文件,無論從管理還是在效率上都無法接受。---轉自斬月
apt-get install apt-transport-https apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D sh -c "deb https://apt.dockerproject.org/repo ubuntu-trusty main\ > /etc/apt/sources.list.d/docker.list" apt-get update apt-get install docker-engine
二.以容器的方式運行registry服務
mkdir /data/registry docker run -d --name registry -p xxx.xxx.xxx.xxx:5000:5000 -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=/tmp/registry -v /data/registry:/tmp/registry registry
--restart=always
三.用nginx來做docker registry倉庫的安全控制
這裏採用marvambass/nginx-registry-proxy來做 非常的方便。
(1)配置ssl證書和密碼文件
mkdir /etc/nginx/docker ----用來存放文件 cd /etc/nginx/docker openssl req -x509 -newkey rsa:4086 -keyout key.pem -out cert.pem -days 3650 -nodes ----Common Name設置成FQDN的格式 htpasswd -c docker-registry.htpasswd user1 ----創建密碼文件 /etc/nginx/docker$ ls cert.pem docker-registry.htpasswd key.pem docker run -d -p 443:443 -v /etc/nginx/docker:/etc/nginx/external --link registry:registry --name nginx-registry-proxy marvambass/nginx-registry-proxy cat cert.pem | sudo tee -a /etc/ssl/certs/ca-certificates.crt
之後重啓docker 即可;
備註其他客戶端操作如下:
cat cert.pem | sudo tee -a /etc/ssl/certs/ca-certificates.crt
之後重啓docker即可。
(2)驗證登錄
編輯/etc/hosts 綁定FQDN到內網網卡
docker login -u user1 -p passwd -e mail@xxx https://registry.xx.com Login Succeeded
四.搭建docker web ui 管理倉庫
docker run -d --name docker-webui -p 內網ip:8001:8080 atcol/docker-registry-ui
(1)用Nginx auth basic認證保護
htpasswd -c docker.user user1
創建虛擬主機:
server { listen 8010; server_name defaults; root html; location / { auth_basic "docker"; auth_basic_user_file /etc/nginx/conf.d/docker.user; proxy_pass http://內網ip:8001/; } }
然後訪問添加填入具體docker registry倉庫即可
五.更新鏡像
1.對容器進行修改後,進行提交 docker commit <CONTAINER ID> <IMAGES NAME> 2.登錄私有倉庫 docker login -u xx -p xx -e [email protected] https://registry.xx.com 3.提交更新 docker push registry.xxx.com/jenkins