Docker私有倉庫與docker-web-ui的搭建

Docker是時下相當火熱的技術,關於docker的介紹此處就不多說,本文主要介紹下如何在Ubuntu 14.04環境下配置docker的本地倉庫,對於想在局域網內大規模運用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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章