国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

Centos 7中Docker私有倉庫的搭建方法

2024-09-01 13:51:23
字體:
來源:轉載
供稿:網友

系統配置: CentOS 7 內核 3.10.0-229.20.1.el7.x86_64 Docker version 1.8.2

運行 docker registry

執行下列命令:

 

復制代碼 代碼如下:

docker run /     -d /     --name private_registry  --restart=always /     -e SETTINGS_FLAVOUR=dev /     -e STORAGE_PATH=/registry-storage /     -v /data/docker/private-registry/storage:/registry-storage /     -u root /     -p 5000:5000 /     registry:2

 

如果本地已有registry鏡像,它會直接運行,否則它會到docker hub共有倉庫下載之后再運行, -v /data/docker/private-registry/storage:/registry-storage 該命令將之后私有倉庫的鏡像存放到本地。

之后執行:

 

復制代碼 代碼如下:

docker tag docker.io/docker:1.8 192.168.100.9:5000/docker:1.8  docker push 192.168.100.9:5000/docker:1.8

 

這時會報很多錯誤:

 

復制代碼 代碼如下:

FATA[0000] Error response from daemon: v1 ping attempt failed with error: Get https://192.168.100.9:5000/v1/_ping: tls: oversized record received with length 20527/.  If this private registry supports only HTTP or HTTPS with an unknown CA certificate,please add  `--insecure-registry 192.168.100.9:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/192.168.100.9:5000/ca.crt

 

最簡單的解決方法是修改 /etc/sysconfig/docker 文件添加 INSECURE_REGISTRY='--insecure-registry 192.168.100.9:5000' , Ubuntu 14.04 的配置文件在 /etc/default/docker 在該文件里添加 DOCKER_OPTS="--insecure-registry 192.168.100.9:5000" ,添加過之后重啟 docker ,重新運行 docker registry 即可生效。這樣做的缺點是你的私有倉庫不安全,其次,其他要下載或者上傳鏡像的機器都要修改相應的配置文件。

安全的做法是去認證機構購買簽名證書,在此我們使用自認證的方式。

自簽名認證

首先執行:

 

復制代碼 代碼如下:

# mkdir -p certs && openssl req /   -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key /   -x509 -days 365 -out certs/domain.crt  Country Name (2 letter code) [AU]:CN State or Province Name (full name) [Some-State]:Beijing Locality Name (eg, city) []:Beijing Organization Name (eg, company) [Internet Widgits Pty Ltd]:SERCXTYF Organizational Unit Name (eg, section) []:IT Common Name (e.g. server FQDN or YOUR name) []:192.168.100.9:5000 Email Address []:xxx.yyy@ymail.com

 

生成認證證書和密鑰。接下來將剛生成的 certs/domain.crt 復制到 /etc/docker/certs.d/192.168.100.9:5000/ca.crt ,之后重啟 docker 并運行:

 

復制代碼 代碼如下:

docker run /     -d /     --name private_registry  --restart=always /     -e SETTINGS_FLAVOUR=dev /     -e STORAGE_PATH=/registry-storage /     -v /data/docker/private-registry/storage:/registry-storage /     -u root /     -p 5000:5000 /     -v /root/certs:/certs /     -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt /     -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key /     registry:2

 

這樣之后應該可以成功了吧,于是執行:

# docker push 192.168.100.9:5000/docker:1.8

結果它還是報錯了:

 

復制代碼 代碼如下:

The push refers to a repository 192.168.100.9:5000/docker:1.8 unable to ping registry endpoint https://192.168.100.9:5000/v0/ v2 ping attempt failed with error: Get https://192.168.100.9:5000/v2/: x509: cannot validate certificate for 192.168.100.9 because it doesn't contain any IP SANs v1 ping attempt failed with error: Get https://192.168.100.9:5000/v1/_ping: x509: cannot validate certificate for 192.168.100.9 because it doesn't contain any IP SANs

 

解決方法:修改 /etc/pki/tls/openssl.cnf 配置,在該文件中找到 [ v3_ca ] ,在它下面添加如下內容:

 

復制代碼 代碼如下:

[ v3_ca ] # Extensions for a typical CA subjectAltName = IP:123.56.157.144

 

之后再次重啟docker,并重新 run registry ,啟動成功之后,執行:

 

復制代碼 代碼如下:

# docker push 192.168.100.9:5000/docker:1.8  The push refers to a repository [192.168.100.9:5000/docker] (len: 1) 793ab2f3d322: Pushed  e1232be51d09: Pushed  71ef33d4e0e5: Pushed  e9d235d200dc: Pushed  3fb9a265fbfc: Pushed  9f50b4b1f00b: Pushed  413668359dd0: Pushed  da0daae25b21: Pushed  f4fddc471ec2: Pushed  1.8: digest: sha256:28a02a8a50b750a300904b53e802bdf76516d591b2d233ae21cf771b8c776d44 size: 17621

 

至此,上傳終于成功。換臺機器下載剛上傳的鏡像:

 

復制代碼 代碼如下:

# docker pull  192.168.100.9:5000/docker:1.8  Trying to pull repository 192.168.100.9:5000/docker ... failed unable to ping registry endpoint https://192.168.100.9:5000/v0/ v2 ping attempt failed with error: Get https://192.168.100.9:5000/v2/: x509: certificate signed by unknown authority  v1 ping attempt failed with error: Get https://192.168.100.9:5000/v1/_ping: x509: certificate signed by unknown authority

 

仔細分析錯誤信息,發現是沒有證書,將在 192.168.100.9 上生成的證書拷貝到相應的目錄下 /etc/docker/certs.d/192.168.100.9:5000/ca.crt ,拷貝之后重啟 docker ,再次執行:

 

復制代碼 代碼如下:

# docker pull  192.168.100.9:5000/docker:1.8  1.8: Pulling from docker 9d58b928bc15: Pull complete  dbe7e8a7807c: Pull complete  ce14982b73d4: Pull complete  b9f70905d763: Pull complete  b9c93a2fb3cf: Pull complete  1321a4d5d3ea: Pull complete  5941048a7e27: Pull complete  f57edf7c2e71: Pull complete  5de2ade00f1b: Pull complete  Digest: sha256:28a02a8a50b750a300904b53e802bdf76516d591b2d233ae21cf771b8c776d44 Status: Downloaded newer image for 192.168.100.9:5000/docker:1.8

 

至此, docker registry 私有倉庫安裝成功。如果要部署到生產環境還需要進一步的配置,具體可以參考Registry Configuration Reference。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海原县| 富源县| 大丰市| 电白县| 小金县| 岳池县| 肥城市| 法库县| 陕西省| 化德县| 都匀市| 搜索| 万荣县| 集贤县| 建昌县| 武安市| 于田县| 治多县| 武义县| 丹阳市| 即墨市| 温宿县| 新民市| 兴山县| 湖南省| 同心县| 屏东县| 青浦区| 蕉岭县| 广安市| 崇左市| 理塘县| 内黄县| 卢湾区| 高雄市| 乐陵市| 诸城市| 麻栗坡县| 宜兴市| 兴仁县| 景洪市|