天天看點

Day2:體驗ECS搭建Docker環境全流程

使用 ECS 可以快速從全新 CentOS 系統搭建 Docker 環境。本文介紹了使用 ECS 搭建 Docker 環境并在其中部署 Nginx 服務的全流程。

其中用到了第三方工具 Xshell,由于 Day1 中已對該工具簡要介紹,本文不再贅述。

背景知識

容器技術

容器技術 是指允許使用者在資源隔離的過程中,運作應用程式和其依賴項的 、輕量的 、作業系統級别的虛拟化技術。

該技術中,運作應用程式所需的所有必要元件都打包為單個可複用的 鏡像 。運作時,鏡像會運作在獨立的環境中,不與其他程式共享主機作業系統的記憶體、CPU 或磁盤。這保證了容器内的程序不會影響到容器外的任何程序。

Docker

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器鏡像中,然後釋出到任何流行的 Linux 機器或 Windows 機器上,實作虛拟化。

Docker 容器是完全使用 沙箱機制 ,互相之間不會有任何接口,其底層采用的是 Linux 的

cgroup

namespace

兩項技術來實作應用隔離。

完整的 Docker 環境由以下幾個部分組成:

  • Docker Client(用戶端)
  • Docker Daemon(守護程序)
  • Docker Image(鏡像)
  • Docker Container(容器)

申請 ECS 執行個體、遠端連接配接 ECS 執行個體

這兩個部分的大部分說明與 Day1 一緻,這裡不再贅述,主要記錄一下遇到的問題。

嘗試連接配接伺服器時遇到無法連接配接錯誤:

Day2:體驗ECS搭建Docker環境全流程

發現本次實驗提供的ECS存在白名單限制,系統識别本地的IP錯誤導緻本地IP不在白名單内:

Day2:體驗ECS搭建Docker環境全流程

可以在

IP查詢網

檢視本地外網IP:

Day2:體驗ECS搭建Docker環境全流程

是以,實驗前需要 手動修改白名單 IP:

  1. 在頁面左側資源欄點選【一鍵複制登入 URL】,打開浏覽器隐身視窗(無痕模式)打卡已複制的登入連結。

    【注意】一定要是 隐身視窗(無痕模式),否則會将主賬号頂出登入狀态,導緻教程無法檢視!

  2. 輸入資源提供的 子使用者名稱 和 子使用者密碼 ,點選 【登入】。
  3. 在左側菜單選擇【雲伺服器 ECS】,在執行個體清單中選擇唯一的一台實驗伺服器,然後在打開的頁面選擇【本執行個體安全組】。
  4. 點選頁面上的【配置規則】。
    Day2:體驗ECS搭建Docker環境全流程
  5. 在編輯頁面中選擇【入方向】頁籤,确認看到【授權對象】下的 IP 是錯誤的,點選【編輯】按鈕。
    Day2:體驗ECS搭建Docker環境全流程
  6. 這裡為了防止本地 IP 為營運商配置設定的動态 IP 突然變動導緻無法通路,将白名單的範圍擴大為

    *.*.*.0/16

    ,其中

    16

    表示 IP 最後一個分位塊為任意值均可。最後點選儲存即可生效。
    Day2:體驗ECS搭建Docker環境全流程

最後再次嘗試連接配接ECS,可以看到連接配接成功:

Day2:體驗ECS搭建Docker環境全流程

安裝 Docker CE

Docker 有兩個分支版本:Docker CE(社群版)和 Docker EE(企業版)。

兩者的差別主要在于軟體許可方式不同(開源/閉源)、支援的作業系統略有差別等,Docker EE 将更加注重安全性,Docker 也會為Docker EE 的使用者提供技術支援。

本次體驗将基于 ECE(CentOS 7.7)安裝 Docker CE。

  1. 安裝 Docker 依賴庫
    yum install -y yum-utils device-mapper-persistent-data lvm2           
  2. 添加 Docker CE 的軟體源資訊
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo           
  3. yum makecache fast
    yum -y install docker-ce           
  4. 啟動 Docker 服務
    systemctl start docker           

配置阿裡雲鏡像加速

Docker 的預設官方遠端倉庫位址為

hub.docker.com

由于網絡原因,下載下傳一個 Docker 官方鏡像可能會需要很長的時間,甚至下載下傳失敗。為此,阿裡雲容器鏡像服務

ACR

提供了官方的鏡像站點,使用該鏡像服務即可加速官方鏡像的下載下傳。

下面将 Docker 遠端倉庫位址修改為阿裡雲的加速鏡像倉庫位址。

  1. 登入容器鏡像服務控制台
    1. 在頁面左側資源欄點選【一鍵複制登入 URL】,打開浏覽器隐身視窗(無痕模式)輸入已複制的登入連結。
    2. 輸入資源提供的【子使用者名稱】和【子使用者密碼】,點選【登入】;然後搜尋

      容器鏡像

      ,點選【容器鏡像服務】登入控制台(彈出的開通服務視窗關閉即可)。
  2. 檢視專屬鏡像加速位址

    單擊【鏡像中心】>【鏡像加速器】,可以看到阿裡雲 ACR 提供了一個專屬的鏡像加速位址。

  3. 配置 Docker 的自定義鏡像倉庫位址

    請将下面指令中的鏡像倉庫位址

    https://[随機代碼].mirror.aliyuncs.com

    替換為阿裡雲為您提供的專屬鏡像加速位址。
    tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://[随機代碼].mirror.aliyuncs.com"]
    }
    EOF           
  4. 重新加載服務配置檔案
    systemctl daemon-reload           
  5. 重新開機 Docker 服務
    systemctl restart docker           

使用 Docker 安裝 Nginx 服務

  1. 檢視 Docker 鏡像倉庫中 Nginx 的可用版本
    docker search nginx           
    指令輸出如下所示:
    Day2:體驗ECS搭建Docker環境全流程
  2. 拉取最新版的 Nginx 鏡像
    docker pull nginx:latest           
    Day2:體驗ECS搭建Docker環境全流程
  3. 檢視本地鏡像
    docker images           
    Day2:體驗ECS搭建Docker環境全流程
  4. 運作容器
    docker run --name nginx-test -p 8080:80 -d nginx           
    指令參數說明:
    • --name nginx-test

      :容器名稱。
    • -p 8080:80

      : 端口進行映射,将本地 8080 端口映射到容器内部的 80 端口。
    • -d nginx

      : 設定容器在背景一直運作。

      指令輸出如下所示:

Day2:體驗ECS搭建Docker環境全流程
  1. 在浏覽器位址欄輸入

    http://[ECS公網位址]:8080

    通路 Nginx 服務。
    ![](https://img.alicdn.com/tfs/TB16G73HEz1gK0jSZLeXXb9kVXa-617-252.png)