中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

私有鏡像庫構建攻略

發布時間:2020-06-16 01:48:18 來源:網絡 閱讀:469 作者:RancherLabs 欄目:網絡安全

上篇文檔中,我已經詳細介紹了如何快速簡單的部署Rancher Server,啟用Github認證以及數據保持方便后續的升級操作。在這篇文檔中,我將梳理下如何創建一個有密碼保護的私有Docker Registry以及如何和Rancher整合。我們將下載一個容器鏡像,為其設置標簽并推送至此Registry。最后,我們將通過Rancher Server部署此容器鏡像。


雖然我建議大家使用AWS S3,但是我在此將使用registry:2,把所有的數據存放在主機本地。

 

我們需要提前準備如下工作:

 

  • 域名所對應的證書,我將使用regv2.piel.io 

  • 一個兼容.htaccess的密碼

 

我將通過letsencrypt.org以及一個Docker腳本來快速創建第一個證書。

 

  • 復制 git@github.com:fatk/docker-letsencrypt-nginx-proxy-companion-examples.git

  • 修改docker-letsencrypt-nginx-proxy-companion-examples/dockerdocker-run/simple-site/docker-run.sh,將site.example.com修改為你將使用的域名

  • 運行腳本

 

$ git clone git@github.com:fatk/docker-letsencrypt-nginx-proxy-companion-examples.git
$ cd docker-letsencrypt-nginx-proxy-companion-examples
# Modify the script and replace site.example.com 
$ vi dockerdocker-run/simple-site/docker-run.sh
$ ./docker-run.sh


腳本運行后,將啟動一個nginx實例,一個docker-gen實例,一個letsencrypt-nginx-proxy-companion實例以及最終的nginx實例。

 

我們來看下腳本運行成功后有哪些容器啟動了:


私有鏡像庫構建攻略


看上去已經成功了,但是我們剛剛創建的證書在哪兒?

 

$ ls volumes/proxy/certs
dhparam.pem  regv2.piel.io  regv2.piel.io.crt  regv2.piel.io.dhparam.pem  regv2.piel.io.key


以及:

 

$ ls volumes/proxy/certs/regv2.piel.io
account_key.json  cert.pem  fullchain.pem  key.pem


很好,接下來我們可以將regv2.piel.io.key以及fullchain.pem用于容器registry:2.

 

下面我們創建registry可以訪問到的證書目錄

 

$ mkdir -p /data/docker-registry-certs
$ cp volumes/proxy/certs/regv2.piel.io.key /data/docker-registry-certs/
$ cp volumes/proxy/certs/regv2.piel.io/fullchain.pem /data/docker-registry-certs/
$ mkdir /data/docker-registry-auth
$ mkdir /data/docker-registry


最后一步,創建訪問registry的用戶名和密碼,此為訪問docker registry:2的最低安全措施配置。

 

$ docker run --entrypoint htpasswd registry:2 -Bbn pieltestuser \
"mkakogalb47" > /data/docker-registry-auth/htpasswd


該命令要求主機上已經存在registry:2 鏡像,所以在運行htpasswd命令前它會自動下載此鏡像。之后,此容器會自動停止。

 

檢查下htpasswd是否已經被創建:

 

$ cat /data/docker-registry-auth/htpasswd
pieltestuser:$2y$05$w3IqOzTdsDbot9ls1JpeTeHYr/2vv.PTx3dObRvT.JkfGaygfTkJy


最后,運行registry:2

 

$ docker run -d -p 5000:5000 --restart=always --name docker-registry \
  -v /data/docker-registry:/var/lib/registry \
  -v /data/docker-registry-auth:/auth \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
  -v /data/docker-registry-certs:/certs \
  -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/fullchain.pem" \
  -e "REGISTRY_HTTP_TLS_KEY=/certs/regv2.piel.io.key" \
  registry:2
 
$ docker run -d -p 5000:5000 --restart=always --name docker-registry \
  -v /data/docker-registry:/var/lib/registry \
  -v /data/docker-registry-auth:/auth \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
  -v /data/docker-registry-certs:/certs \
  -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/fullchain.pem" \
  -e "REGISTRY_HTTP_TLS_KEY=/certs/regv2.piel.io.key" registry:2


我們試一下是否可以登陸:

 

$ docker login -u pieltestuser -p "mkakogalb47" -e wayne@wayneconnolly.com regv2.piel.io:5000
$ docker login -u pieltestuser -p "mkakogalb47" -e wayne@wayneconnolly.com regv2.piel.io:5000
WARNING: login credentials saved in /root/.docker/config.json
Login Succeeded


接下來我們試下是否可以下載、標記、上傳容器鏡像至我們的新鏡像倉庫。例如,下載一個jenkins https://hub.docker.com/_/jenkins/

 

$ docker pull jenkins$ docker tag jenkins:latest regv2.piel.io:5000/piel-jenkins:latest


驗證下是否可用

 

私有鏡像庫構建攻略


很好,上傳到我們的鏡像倉庫。

 

$ docker push regv2.piel.io:5000/piel-jenkins:latest


直到寫這篇文章的時候,除了用Curl,還沒有很好的方法可以直接看到鏡像庫中的鏡像列表

 

$ curl -u pieltestuser:mkakogalb47 https://regv2.piel.io:5000/v2/_catalog
{"repositories":["piel-jenkins"]}


可以通過JSON看到我們的新Jenkins鏡像在我們的私有鏡像庫中

 

現在可以在我們的Rancher-test.piel.io環境中應用我們的registry了。

 

登陸Rancher,在基礎架構 > 主機中點擊添加主機。

 

將自動生成的命令在Rancher Host上運行。

 

$ sudo docker run -e CATTLE_AGENT_IP='45.32.190.15'  \
  -d --privileged \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/lib/rancher:/var/lib/rancher \
  rancher/agent:v1.0.1 http://rancher-test.piel.io/v1/scripts/FF42DCE27F7C88BD7733:1461042000000:ryU0BaXJFo6c9zuHgeULdAtbCE

$ sudo docker run -d --privileged \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/lib/rancher:/var/lib/rancher \ 
  rancher/agent:v0.11.0http://rancher.piel.io/v1/scripts/BE455B92EA48EA1C1F12:1461042000000:mi433ChYRN9nfQSwB2FIlBnpPk


一兩分鐘后主機將在Rancher管理界面中出現。由于我還沒有配置主機信息,主機顯示名稱依然為“vultr.guest”, 我們可以通過菜單修改主機名稱并添加標簽。

 

私有鏡像庫構建攻略


接下來,我們添加私有registry并在新增加的主機上部署Jenkins。

 

在基礎架構菜單 > 鏡像庫中點擊“添加鏡像庫”,并選擇自定義,添加相應的信息完成配置。

 

幾分鐘之后,Rancher server的私有鏡像倉庫就可以使用了。

 

私有鏡像庫構建攻略私有鏡像庫構建攻略

 

下面讓我們部署Jenkins容器。在基礎架構 >  容器菜單中,點擊“添加容器”

 

填寫所需信息,在選擇p_w_picpath一處輸入regv2.piel.io:5000/piel-jenkins: latest并設置端口映射為Jenkins 8080到主機的80端口。

 

私有鏡像庫構建攻略


此處將需要一點時間下載鏡像。

 

下面我們將看到我們又一個容器叫做“my-jenkins”已經啟動了。

 

私有鏡像庫構建攻略


訪問到Jenkins URL,http://regv2.piel.io。

 

私有鏡像庫構建攻略


通過docker ps再確認一次:

 

私有鏡像庫構建攻略


成功!我們現在已經完成了:

創建并加密了我們自己的私有鏡像庫

添加并標記了一個容器鏡像

為Rancher Server添加了一個主機

為Rancher Server增加了一個私有鏡像庫

在主機上部署了一個Jenkins容器

確認容器已經部署成功

 

注意:在本教程中使用的服務器現在已經退役啦。

 

原文來源:Rancher Labs



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

无棣县| 云安县| 惠来县| 吴江市| 融水| 长葛市| 中西区| 万全县| 托克逊县| 玉山县| 绥江县| 通河县| 民县| 长武县| 沙河市| 铜陵市| 灵宝市| 湘阴县| 梓潼县| 赤水市| 元阳县| 资中县| 安乡县| 亳州市| 乐清市| 霞浦县| 沐川县| 三亚市| 阿尔山市| 秦安县| 夏邑县| 温州市| 施甸县| 呼玛县| 布拖县| 界首市| 龙里县| 赤峰市| 高雄县| 七台河市| 宾川县|