建立認證授權的docker私有倉庫
阿新 • • 發佈:2019-01-26
之前介紹過簡單的搭建docker私有倉庫的方法(見http://blog.csdn.net/jthink_/article/details/50596239),但是如果是在測試、開發、生產環境中都使用該私有倉庫,必須做一些認證授權相關的限制,否則任何人都能建立和更改一個映象,這樣有可能會對映象造成汙染。
- 安裝docker
簡單方式,daocloud提供的方式:curl -sSL https://get.daocloud.io/docker | sh
官網的方式比較慢,daocloud每3小時會去同步更新官方的源,所以採用這樣的方式安裝還是比較靠譜的 - 安裝docker-compose
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose - 建立docer私有倉庫
- 生成簽名證書
一般情況下,證書只支援域名的訪問,要使他支援ip訪問,需要修改如下配置
sudo vim /etc/ssl/openssl.cnf
加入如下內容:
[ v3_ca ]
subjectAltName = IP:192.168.xx.xx
生成證書
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key -x509 -days 365 -out certs/domain.crt - 生成密碼
sudo docker run --entrypoint htpasswd registry:2 -Bbn username - 私有倉庫搭建
sudo docker run -d -p 5000:5000 --restart always --name registry -v `pwd`/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -v /home/xxx/docker/registry:/var/lib/registry -v `pwd`/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2
- 生成簽名證書
- 私有倉庫使用
mkdir /etc/docker/certs.d/192.168.xx.xx:5000
sudo cp ~/docker/certificate/certs/domain.crt ca.crt
sudo docker login
然後輸入使用者名稱和密碼
PS:在所有需要使用私有倉庫的地方都需要做上述步驟的授權認證