1. 程式人生 > >建立認證授權的docker私有倉庫

建立認證授權的docker私有倉庫

之前介紹過簡單的搭建docker私有倉庫的方法(見http://blog.csdn.net/jthink_/article/details/50596239),但是如果是在測試、開發、生產環境中都使用該私有倉庫,必須做一些認證授權相關的限制,否則任何人都能建立和更改一個映象,這樣有可能會對映象造成汙染。
  1. 安裝docker
    簡單方式,daocloud提供的方式:curl -sSL https://get.daocloud.io/docker | sh
    官網的方式比較慢,daocloud每3小時會去同步更新官方的源,所以採用這樣的方式安裝還是比較靠譜的
  2. 安裝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
  3. 建立docer私有倉庫
    1. 生成簽名證書
      一般情況下,證書只支援域名的訪問,要使他支援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
    2. 生成密碼
      sudo docker run --entrypoint htpasswd registry:2 -Bbn username 
      password > auth/htpasswd
    3. 私有倉庫搭建
      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
  4. 私有倉庫使用
    mkdir /etc/docker/certs.d/192.168.xx.xx:5000
    sudo cp ~/docker/certificate/certs/domain.crt ca.crt
    sudo docker login
    然後輸入使用者名稱和密碼
    PS:在所有需要使用私有倉庫的地方都需要做上述步驟的授權認證