1. 程式人生 > >docker registry 搭建流程(含CA認證)

docker registry 搭建流程(含CA認證)

docker registry 搭建(含CA認證)

環境說明

終端 作業系統 其他
服務端 Centos7 IP:10.192.3.230
客戶端A boot2docker IP:192.168.99.100

服務端配置

  1. 安裝docker
yum install -y docker-io
  1. 下載docker registry映象(使用版本2)
docker pull docker.io/registry:2
  1. 生成祕鑰,此處關鍵點在於CA中的服務名稱不能亂寫,後續配置要用到。
openssl req     -newkey
rsa:4096 -nodes -sha256 -keyout /certs/docker.key -x509 -days 365 -out /certs/docker.crt
  1. 啟動docker registry
docker run -it --rm -p 5000:5000 --name registry -v /certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/docker.crt -e REGISTRY_HTTP_TLS_KEY=/certs/docker.key docker.io/registry:2

宿主機配置

宿主機如果要實現訪問私服,需要將CA證書新增到自身的CA認證庫中。

cp /certs/docker.crt /etc/pki/ca-trust/source/anchors/docker.crt

再修改/etc/hosts檔案配置服務與IP的對映關係

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.192.3.230 CA證書中的服務名

客戶端A配置

  1. 安裝boot2docker
  2. 啟動boot2docker
    1 . docker-machine start default
    2 . docker-machine ssh default
  3. 修改hosts檔案,新增以下內容。
    10.192.3.230 docker
    10.192.3.230是服務端IP,此處根據實際情況修改。
  4. 拷貝祕鑰
    1 . 將服務端docker.crt檔案拷貝到/etc/docker/certs.d/docker:5000/docker.crt
  5. 新增祕鑰至系統
  6. 再修改/etc/hosts檔案配置服務與IP的對映關係
    執行以下命令
cat /etc/docker/certs.d/docker:5000/docker.crt > /usr/local/etc/ssl/certs/ca-certificates.crt
  1. 再修改/etc/hosts檔案配置服務與IP的對映關係
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.192.3.230 CA證書中的服務名

客戶端使用

  1. 上傳本地映象到私服
    1 . 建立準備上傳的映象檔案
    docker tag centos:6.6 docker:15000/centos:6.6
    此處映象名稱標識上傳路徑,所以要與hosts檔案中配置的一致
    2.上傳映象到私服
    docker push docker:15000/centos:6.6
    在私服中映象名為centos,不包含docker:15000
  2. 下載私服的映象
    docker pull docker:15000/centos:6.6
    此處docker:15000表示下載路徑,要與hosts檔案中配置一致

  1. 每次重啟boot2docker,hosts檔案和ca-certificates.crt檔案要重新修改。(有待完善)
  2. docker registry所在系統不建議用Centos6
  3. docker registry版本建議使用2,不建議用最新.