[ Docker ] 在 AWS EC2 上建立 Docker Registry

學習目標

  • AWS EC2 使用
  • 遠端登入到 AWS EC2
  • 建立 Docker Registry
  • 查詢 Docker Registry 資訊

示意圖

AWS EC2 設定

  • 1 登入到 AWS EC2


  • 2 點選 【 Services 】 中的 【 EC2 】


  • 3 點選 【 Launch Instance 】


  • 4 點選 【 Ubuntu Server 16.04 LTS 】


  • 5 點選 【 t2.micro Free tier eligible 】再點選上方的 【 6. Configure Security Group 】


  • 6 點選 【 Add Rule 】

新增下方資訊後按 【 Review and Launch 】

Port Range: 5000  
Source: 0.0.0.0/0  


  • 7 點選 【 Launch 】


  • 8 點選 【 Create a new key pair 】

① 輸入 【 Key pair name 】
② 點選 【 Download Key Pair 】

Key Pair 下載結果  

點選 【 Launch Instances 】


  • 9 點選 【 View Instances 】


  • 10 AWS EC2 建立完的結果

遠端登入到 AWS EC2

  • macOS

Step 1. 開啟終端機

❖ 1.1  點選【 前往 】 ➙ 【 工具程式 】 ➙ 【 終端機 】


Step 2. 切換路徑到 AWS EC2 憑證所在位置

 2.1  指令為 cd 憑證所在目錄

 2.2  確認憑證是否存在
       指令為 ls -al

 2.3  設定憑證權限
       指令為 chmod 400 憑證名稱


Step 3. 取得 AWS EC2 登入資訊

3.1  點選所啟用的 Instance 再點選 【 Connect 】  


3.2  複製紅色框框中的資訊到終端機中  


3.3   登入成功畫面  


  • Windows

Step 1. 下載 PuTTY 並安裝

下載網址 https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html


Step 2. 將 AWS EC2 的 .pem 憑證檔轉成 .ppk

 2.1  開啟 PuTTYgen
       ① 點選【 開始 】 ➙ 【 所有程式 】 ➙ 【 PuTTY 】 ➙ 【 PuTTYgen 】


 2.2  載入私有金鑰
       ① 點選 【 File 】 ➙ 【 Load private key 】


       ② 將右下角 【 PuTTY Private Key Files(*.ppk) 】選項改成 【 All Files (*.*) 】


       ③ 點選 AWS EC2 的 .pem 憑證檔  ➙ 【 開啟 】


       ④ 點選 【 確定 】


       ⑤ 點選 【 Save private key 】


       ⑥ 點選 【 是 】


       ⑦ 檔案名稱取名並點選 【 存檔 】


Step 3. 登入到 AWS EC2 中

 3.1  開啟 PuTTY
       ① 點選【 開始 】 ➙ 【 所有程式 】 ➙ 【 PuTTY 】


       ② 點選【 Connection 】 ➙ 【 SSH 】 ➙ 【 Auth 】


       ③ 點選 【 Browse 】按鈕,匯入步驟 2.2 所產生的 .ppk 憑證檔 ➙ 【 開啟 】 


       ④ 點選 【 Session 】


       ⑤ 在 【 Host Name (or IP address) 】 欄位中輸入 AWS EC2 所開啟的 Instance 的帳號與 Public DNS
          5.1 請到 AWS EC2 中點選所要使用的 Instance


          5.2 再點選 【 Connect 】 按鈕


          5.3 複製 【 Example 】中從 ubuntu 開始到最後的文字到 PuTTY 中【 Host Name (or IP address) 】 欄位中,再點選 【 Open 】


       ⑥ 點選 【 是 】


       ⑦ 登入成功畫面


安裝 Docker Engine

將 Docker Engine 安裝於 AWS EC2

於終端機 【 macOS 】或 Putty 【 Windows 】中輸入下方指令

sudo apt-get update  
sudo apt-get install -y docker.io  

下載並啟動 Docker Registry

將 Docker Registry 安裝於 AWS EC2

於終端機 【 macOS 】或 Putty 【 Windows 】中輸入下方指令

sudo docker run -d -p 5000:5000 -v /docker/registry:/var/lib/registry registry  

設定 insecure-registries

確認 Local 端電腦已經安裝 Docker Engine 在 Local 端的電腦進行 Docker 設定

  • 開啟 【 Docker 】中的 【 Preferences... 】


  • 點選 【 Daemon 】


  • 在 【 insecure-registries 】中輸入下方資訊

    Docker-Registry-IP:5000 ※ Docker-Registry-IP 位於【 AWS EC2 】服務之【 Instances 】頁面中所建立的 Instance 列表中的【 IPv4 Public IP 】欄位


  • 點選 【 Apply & Restart 】以重新啟動 Docker


Push Docker Image 到 Docker Registry

將 Local 端的【 mmosconii/flask-sample 】Image 上傳到 Docker Registry
※ 此【 mmosconii/flask-sample 】Image 為上個章節所產生

於終端機【 macOS 】或 Putty【 Windows 】中輸入下方指令

sudo docker tag mmosconii/flask-sample Docker-Registry-IP:5000/mmosconii/flask-sample

sudo docker push Docker-Registry-IP:5000/mmosconii/flask-sample  

透過 Restful API 查詢 Docker Registry 資訊

在 Local 端確認遠端的 Docker Registry 是否有剛上傳的 Image

於終端機【 macOS 】或 Putty【 Windows 】中輸入下方指令

curl -X GET http://Docker-Registry-IP:5000/v2/_catalog

curl -X GET http://Docker-Registry-IP:5000/v2/mmosconii/flask-sample/tags/list

curl -X GET http://Docker-Registry-IP:5000/v2/mmosconii/flask-sample/manifests/latest  

GitHub
List of blogs
ALL RIGHTS RESERVED. COPYRIGHT © 2018. Designed and Coded by Makee.io