Docker 作為一款容器化應用的新興軟體,被大多數 IT 公司使用來減少基礎設施平台的成本。
通常,沒有 GUI 的 Docker 軟體對於 Linux 管理員來說很容易,但是對於開發者來就有點困難。當把它搬到生產環境上來,那麼它對 Linux 管理員來說也相當不友好。那麼,輕鬆管理 Docker 的最佳解決方案是什麼呢?
唯一的辦法就是提供 GUI。Docker API 允許第三方應用接入 Docker。在市場上有許多 Docker GUI 應用。我們已經寫過一篇關於 Portainer 應用的文章。今天我們來討論另一個應用,Rancher。
容器讓軟體開發更容易,讓開發者更快的寫程式碼、更好的執行它們。但是,在生產環境上執行容器卻很困難。
推薦閱讀: Portainer:一個簡單的 Docker 管理圖形工具
Rancher 是一個全面的容器管理平台,它可以讓容器在各種基礎設施平台的生產環境上部署和執行更容易。它提供了諸如多主機網路、全域性/本地負載均衡和捲快照等基礎設施服務。它整合了原生 Docker 的管理能力,如 Docker Machine 和 Docker Swarm。它提供了豐富的使用者體驗,讓 DevOps 管理員在更大規模的生產環境上執行 Docker。
存取以下文章可以了解 Linux 系統上安裝 Docker。
推薦閱讀:
由於 Rancher 是以輕量級的 Docker 容器方式執行,所以它的安裝非常簡單。Rancher 是由一組 Docker 容器部署的。只需要簡單的啟動兩個容器就能執行 Rancher。一個容器用作管理伺服器,另一個容器在各個節點上作為代理。在 Linux 系統下簡單的執行下列命令就能部署 Rancher。
Rancher 伺服器提供了兩個不同的安裝包標籤如 stable
和 latest
。下列命令將會拉取適合的 Rancher 映象並安裝到你的作業系統上。Rancher 伺服器僅需要兩分鐘就可以啟動。
latest
:這個標籤是他們的最新開發構建。這些構建將通過 Rancher CI 的自動化框架進行驗證,不建議在生產環境使用。stable
:這是最新的穩定發行版本,推薦在生產環境使用。Rancher 的安裝方法有多種。在這篇教學中我們僅討論兩種方法。
執行下列命令以單一容器的方式安裝 Rancher 伺服器(內嵌資料庫)
$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:latest
你可以在啟動 Rancher 伺服器時指向外部資料庫,而不是使用自帶的內部資料庫。首先建立所需的資料庫,資料庫使用者為同一個。
> CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';> GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle';> GRANT ALL ON cattle.* TO 'cattle'@'localhost' IDENTIFIED BY 'cattle';
執行下列命令啟動 Rancher 去連線外部資料庫。
$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server \ --db-host myhost.example.com --db-port 3306 --db-user username --db-pass password --db-name cattle
如果你想測試 Rancher 2.0,使用下列的命令去啟動。
$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/server:preview
瀏覽器輸入 http://hostname:8080
或 http://server_ip:8080
去存取 rancher GUI.
註冊你的主機 URL 允許它連線到 Rancher API。這是一次性設定。
接下來,點選主選單下面的 “Add a Host” 連結或者點選主選單上的 “INFRASTRUCTURE >> Add Hosts”,點選 “Save” 按鈕。
預設情況下,Rancher 裡的存取控制認證禁止了存取,因此我們首先需要通過一些方法開啟存取控制認證,否則任何人都不能存取 GUI。
點選 “>> Admin >> Access Control”,輸入下列的值最後點選 “Enable Authentication” 按鈕去開啟它。在我這裡,是通過 “local authentication” 的方式開啟的。
登出然後使用新的登入憑證重新登入:
現在,我能看到本地認證已經被開啟。
註冊你的主機後,它將帶你進入下一個頁面,在那裡你能選擇不同雲服務提供商的 Linux 主機。我們將新增一個主機執行 Rancher 服務,因此選擇“custom”選項然後輸入必要的資訊。
在第 4 步輸入你伺服器的公有 IP,執行第 5 步列出的命令,最後點選 “close” 按鈕。
$ sudo docker run -e CATTLE_AGENT_IP="192.168.56.2" --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.11 http://192.168.56.2:8080/v1/scripts/16A52B9BE2BAB87BB0F5:1546214400000:ODACe3sfis5V6U8E3JASL8jQINFO: Running Agent Registration Process, CATTLE_URL=http://192.168.56.2:8080/v1INFO: Attempting to connect to: http://192.168.56.2:8080/v1INFO: http://192.168.56.2:8080/v1 is accessibleINFO: Configured Host Registration URL info: CATTLE_URL=http://192.168.56.2:8080/v1 ENV_URL=http://192.168.56.2:8080/v1INFO: Inspecting host capabilitiesINFO: Boot2Docker: falseINFO: Host writable: trueINFO: Token: xxxxxxxxINFO: Running registrationINFO: Printing EnvironmentINFO: ENV: CATTLE_ACCESS_KEY=9946BD1DCBCFEF3439F8INFO: ENV: CATTLE_AGENT_IP=192.168.56.2INFO: ENV: CATTLE_HOME=/var/lib/cattleINFO: ENV: CATTLE_REGISTRATION_ACCESS_KEY=registrationTokenINFO: ENV: CATTLE_REGISTRATION_SECRET_KEY=xxxxxxxINFO: ENV: CATTLE_SECRET_KEY=xxxxxxxINFO: ENV: CATTLE_URL=http://192.168.56.2:8080/v1INFO: ENV: DETECTED_CATTLE_AGENT_IP=172.17.0.1INFO: ENV: RANCHER_AGENT_IMAGE=rancher/agent:v1.2.11INFO: Launched Rancher Agent: e83b22afd0c023dabc62404f3e74abb1fa99b9a178b05b1728186c9bfca71e8d
等待幾秒鐘後新新增的主機將會出現。點選 “Infrastructure >> Hosts” 頁面。
只需要點選下列位置就能列出所有容器。點選 “Infrastructure >> Containers” 頁面。
非常簡單,只需點選下列位置就能建立容器。
點選 “Infrastructure >> Containers >> Add Container” 然後輸入每個你需要的資訊。為了測試,我將建立一個 latest
標籤的 CentOS 容器。
在同樣的列表位置,點選 “ Infrastructure >> Containers”。
點選容器名展示容器的效能資訊,如 CPU、記憶體、網路和儲存。
選擇特定容器,然後點選最右邊的“三點”按鈕或者點選“Actions”按鈕對容器進行管理,如停止、啟動、克隆、重新啟動等。
如果你想控制台存取容器,只需要點選 “Actions” 按鈕中的 “Execute Shell” 選項即可。
Rancher 提供了一個應用模版目錄,讓部署變的很容易,只需要單擊一下就可以。 它維護了多數流行應用,這些應用由 Rancher 社群貢獻。
點選 “Catalog >> All >> Choose the required application”,最後點選 “Launch” 去部署。