Docker學習筆記——私有倉庫部署
1、系統環境:CentOS 7.3
172.16.0.44 registry 已安裝docker
172.16.0.45 client 已安裝docker
2、未加密倉庫部署
下載registry鏡像
docker pull registry
啟動一個registry容器
docker run -d -p 5000:5000 -v /opt/registry/:/tmp/registry registry
下載一個需要私有部署的鏡像
docker pull redis
修改鏡像的tag
docker tag redis 172.16.0.44:5000/redis
上傳打完tag的鏡像到私有倉庫
docker push 172.16.0.44:5000/redis The push refers to a repository [172.16.0.44:5000/redis] Get https://172.16.0.44:5000/v2/: http: server gave HTTP response to HTTPS client
因為從 docker1.3.2 開始,docker registry 默認都是使用v2,使用 https 協議而不是 http
解決辦法:
在/etc/docker目錄下,創建daemon.json文件,添加如下內容:
{ "insecure-registries":["172.16.0.44:5000"] }
保存退出
systemctl daemon-reload systemctl restart docker
重啟後再次上傳鏡像,會提示如下錯誤
The push refers to a repository [172.16.0.44:5000/redis] Get http://172.16.0.44:5000/v2/: dial tcp 172.16.0.44:5000: getsockopt: connection refused
這是因為重啟docker服務後,剛才創建的registry倉庫的容器停止了,重啟啟動容器,就可以上傳成功了
docker push 172.16.0.44:5000/redis The push refers to a repository [172.16.0.44:5000/redis] 2bf5fdee0818: Pushed e23ed9242cd7: Pushed 32f085a1e7bb: Pushed 05d392f56700: Pushed 2b0fb280b60d: Pushed latest: digest: sha256:ee24c6a68d9ce22df1aa743ea4c624cdc74e4d99b78e199d480292675249ebca size: 1364
檢查私有倉庫是否配置成功
curl http://172.16.0.44:5000/v2/_catalog {"repositories":["redis"]}
在客戶端下載私有倉庫上的鏡像查看成功
docker pull 172.16.0.44:5000/redis
3、加密倉庫部署
上傳或生產自己的證書文件到倉庫服務器上
把證書文件server.key server.pem上傳到certs目錄下
mkdir -p /etc/docker/certs
啟動registry容器
docker run -d -it -p 5000:5000 --restart=always --name zx_registry -v `pwd`/certs:/etc/docker/certs/ -v /opt/registry/:/tmp/registry -e REGISTRY_HTTP_TLS_CERTIFICATE=/etc/docker/certs/server.pem -e REGISTRY_HTTP_TLS_KEY=/etc/docker/certs/server.key registry
拷貝證書文件到客戶端
scp certs/server.pem [email protected]:/etc/pki/ca-trust/source/anchors/
客戶端更新證書文件
cd /etc/pki/ca-trust/source/anchors update-ca-trust
後面的操作就同未加密倉庫部署一樣,下載鏡像,鏡像打tag,上傳鏡像到本地倉庫,客戶端下載私有鏡像
知行辦公,專業移動辦公平臺 https://zx.naton.cn/
【總監】十二春秋之,[email protected];
【Master】zelo,[email protected];
【運營】狼行天下,[email protected];
【產品設計】流浪貓,[email protected];
【體驗設計】兜兜,[email protected];
【iOS】淘碼小工,[email protected];iMcG33K,[email protected];
【Android】人猿居士,[email protected];思路的頓悟,[email protected];
【java】首席工程師MR_W,[email protected];
【測試】土鏡問道,[email protected];
【數據】喜樂多,[email protected];
【安全】保密,你懂的。
本文出自 “踐行者” 博客,請務必保留此出處http://bluemooder.blog.51cto.com/12822812/1961299
Docker學習筆記——私有倉庫部署