docker registry 搭建流程(含CA認證)
阿新 • • 發佈:2019-01-29
docker registry 搭建(含CA認證)
環境說明
終端 | 作業系統 | 其他 |
---|---|---|
服務端 | Centos7 | IP:10.192.3.230 |
客戶端A | boot2docker | IP:192.168.99.100 |
服務端配置
- 安裝docker
yum install -y docker-io
- 下載docker registry映象(使用版本2)
docker pull docker.io/registry:2
- 生成祕鑰,此處關鍵點在於CA中的服務名稱不能亂寫,後續配置要用到。
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/docker.key -x509 -days 365 -out /certs/docker.crt
- 啟動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配置
- 安裝boot2docker
略 - 啟動boot2docker
1 . docker-machine start default
2 . docker-machine ssh default - 修改hosts檔案,新增以下內容。
10.192.3.230 docker
10.192.3.230是服務端IP,此處根據實際情況修改。 - 拷貝祕鑰
1 . 將服務端docker.crt檔案拷貝到/etc/docker/certs.d/docker:5000/docker.crt - 新增祕鑰至系統
- 再修改/etc/hosts檔案配置服務與IP的對映關係
執行以下命令
cat /etc/docker/certs.d/docker:5000/docker.crt > /usr/local/etc/ssl/certs/ca-certificates.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證書中的服務名
客戶端使用
- 上傳本地映象到私服
1 . 建立準備上傳的映象檔案
docker tag centos:6.6 docker:15000/centos:6.6
此處映象名稱標識上傳路徑,所以要與hosts檔案中配置的一致
2.上傳映象到私服
docker push docker:15000/centos:6.6
在私服中映象名為centos,不包含docker:15000 - 下載私服的映象
docker pull docker:15000/centos:6.6
此處docker:15000表示下載路徑,要與hosts檔案中配置一致
坑
- 每次重啟boot2docker,hosts檔案和ca-certificates.crt檔案要重新修改。(有待完善)
- docker registry所在系統不建議用Centos6
- docker registry版本建議使用2,不建議用最新.