使用 Cockpit 方便地管理容器

2021-12-24 Linux中國

如果你正在尋找一種管理運行容器的 Linux 伺服器的簡單方法,那麼你應該看看 Cockpit。

如果你管理著一臺 Linux 伺服器,那麼你可能正在尋找一個可靠的管理工具。為了這個你可能已經看了 Webmin[1] 和 cPanel[2] 這類軟體。但是,如果你正在尋找一種簡單的方法來管理還包括了 Docker 的 Linux 伺服器,那麼有一個工具可以用於這個需求:Cockpit[3]。

為什麼使用 Cockpit?因為它可以處理這些管理任務:

Cockpit 可以安裝在 Debian、Red Hat、CentOS、Arch Linux 和 Ubuntu 之上。在這裡,我將使用一臺已經安裝了 Docker 的 Ubuntu 16.04 伺服器來安裝系統。

在上面的功能列表中,其中最突出的是容器管理。為什麼?因為它使安裝和管理容器變得非常簡單。事實上,你可能很難找到更好的容器管理解決方案。

因此,讓我們來安裝這個方案並看看它的使用是多麼簡單。

安裝

正如我前面提到的,我將在一臺運行著 Docker 的 Ubuntu 16.04 實例上安裝 Cockpit。安裝步驟很簡單。你要做的第一件事是登錄你的 Ubuntu 伺服器。接下來,你必須使用下面的命令添加必要的倉庫:

sudo add-apt-repository ppa:cockpit-project/cockpit

出現提示時,按下鍵盤上的回車鍵,等待提示返回。一旦返回到 bash 提示符,使用下面的命令來更新 apt:

sudo apt-get get update

使用下面的命令安裝 Cockpit:

sudo apt-get -y install cockpit cockpit-docker

安裝完成後,需要啟動 Cockpit 服務並使它開機自動啟動。要做到這個,使用下面的兩個命令:

sudo systemctl start cockpit

sudo systemctl enable cockpit

安裝就到這裡了。

登錄到 Cockpit

要訪問 Cockpit 的 web 界面,打開瀏覽器(與 Cockpit 伺服器在同一個網絡內),輸入 http://IP_OF_SERVER:9090,你就會看到登錄頁面(圖 1)。

圖 1:Cockpit 登錄頁面。

在 Ubuntu 中使用 Cockpit 有個警告。Cockpit 中的很多任務需要管理員權限。如果你使用普通用戶登錄,則無法使用 Docker 等一些工具。 要解決這個問題,你可以在 Ubuntu 上啟用 root 用戶。但這並不總是一個好主意。通過啟用 root 帳戶,你將繞過已經建立多年的安全系統。但是,在本文的用途中,我將使用以下兩個命令啟用 root 用戶:

sudo passwd root

sudo passwd -u root

注意,請確保給 root 帳戶一個強壯的密碼。

你想恢復這個修改的話,你只需輸入下面的命令:

sudo passwd -l root

在其他發行版(如 CentOS 和 Red Hat)中,你可以使用用戶名 root 及其密碼登錄 Cockpit,而無需像上面那樣需要額外的步驟。

如果你對啟用 root 用戶感到擔心,則可以在伺服器的終端窗口拉取鏡像(使用命令 docker pull IMAGE_NAME, 這裡的 IMAGE_NAME 是你要拉取的鏡像)。這會將鏡像添加到你的 docker 伺服器中,然後可以通過普通用戶進行管理。唯一需要注意的是,普通用戶必須使用以下命令將自己添加到 Docker 組:

sudo usermod -aG docker USER

其中,USER 是實際添加到組的用戶名。在你完成後,重新登出並登入,接著使用下面的命令重啟 Docker:

sudo service docker restart

現在常規用戶可以啟動並停止 Docker 鏡像/容器而無需啟用 root 用戶了。唯一一點是用戶不能通過 Cockpit 界面添加新的鏡像。

使用 Cockpit

一旦你登錄後,你可以看到 Cockpit 的主界面(圖 2)。

圖 2:Cockpit 主界面。

你可以通過每個欄目來檢查伺服器的狀態等,但是我們想要直接進入容器。單擊 「Containers」 那欄以顯示當前運行的以及可用的鏡像(圖3)。

圖 3:使用 Cockpit 管理容器難以置信地簡單。

要啟動一個鏡像,只要找到鏡像並點擊關聯的啟動按鈕。在彈出的窗口中(圖 4),你可以在點擊運行之前查看所有鏡像的信息(並根據需要調整)。

圖 4: 使用 Cockpit 運行 Docker 鏡像。

鏡像運行後,你可以點擊它查看狀態,並可以停止、重啟、刪除實例。你也可以點擊修改資源限制並接著調整內存限制還有(或者)CPU 優先級。

添加新的鏡像

假設你以 root 用戶身份登錄。如果是這樣,那麼你可以在 Cockpit GUI 的幫助下添加新的鏡像。在「 Container」 欄目下,點擊獲取新的鏡像按鈕,然後在新的窗口中搜索要添加的鏡像。假設你要添加 CentOS 的最新官方版本。在搜索欄中輸入 centos,在得到搜索結果後,選擇官方列表,然後單擊下載(圖5)。

圖 5:使用 Cockpit 添加最新的官方構建 CentOS 鏡像到 Docker 中。

鏡像下載完後,那它就在 Docker 中可用了,並可以通過 Cockpit 運行。

如獲取它那樣簡單

管理 Docker 並不容易。是的,在 Ubuntu 上運行 Cockpit 會有一個警告,但如果這是你唯一的選擇,那麼也有辦法讓它工作。在 Cockpit 的幫助下,你不僅可以輕鬆管理 Docker 鏡像,也可以在任何可以訪問 Linux 伺服器的 web 瀏覽器上這樣做。請享受這個新發現的讓 Docker 易用的方法。

via: https://www.linux.com/learn/intro-to-linux/2017/3/make-container-management-easy-cockpit

作者:JACK WALLEN[4] 譯者:geekpi 校對:jasminepeng

本文由 LCTT 原創編譯,Linux中國 榮譽推出

貢獻時間:2014-05-21 -> 2017-05-03

[1]: Webmin - http://www.webmin.com/

[2]: cPanel - http://cpanel.com/

[3]: Cockpit - http://cockpit-project.org/

[4]: JACK WALLEN - https://www.linux.com/users/jlwallen

相關焦點

  • 使用原子主機(Atomic Host)、Ansible 和 Cockpit 部署容器
    它是一個具有漂亮的 Web 界面的 GNU/Linux 伺服器遠程管理工具。它可以幫我管理在主機上運行的伺服器和容器。你可以在從之前發布在這裡的這篇概述[6]中了解 Cockpit 的更多信息。不過,我也希望在主機上可以自動運行容器,我可以使用 Ansible[7] 來完成這個工作。請注意,我們不能在原子主機上使用 dnf 命令。
  • 容器管理平臺的項目實戰 ---應用微服務化與CICD
    這就需要引入容器技術,使用容器雲它可以從本質上更好的解決面臨的問題。過去一年美國超過 40% 的公司嘗試過Docker,並且四分之一的公司使用了編排系統。一些大型企業的資料庫、大數據等應用都在逐步採用容器技術。
  • Mesos統一容器管理技術簡介
    但是現在對多種容器化技術進行管理存在一些問題:如果在Mesos維護多種容器化技術,那麼當為容器管理添加新功能時,需要對不同的容器化技術進行改動,將這些功能在不同的容器化技術中做實現。起碼目前來說,需要在Mesos Containerizer和Docker Containerizer分別實現。
  • 100個容器引擎項目,點亮你的容器集群技能樹
    容器管理和界面工具可視化是用戶友好性十分重要的一部分,Shipyard和Decking是Docker早期時十分受歡迎的可視化工具,之後Docker也收購了Kitematic作為官方的容器管理UI。但隨著容器應用集群化,早期的UI工具不再流行,一些針對特定集群平臺定製的新型管理UI開始出現。
  • 技術分享|攻擊容器集群管理平臺
  • 容器化實踐指南 | 邁出容器化的第一步:集群管理(中)
    雖然我們在搭建集群時就已經確保了所有工作節點在網絡上是互通的,但是由於同一個節點上可能同時運行多個容器,並且容器本身也隨時可能在節點之間移動,因此Kubernetes需要一套容器網絡方案來保障訪問某個指定容器的流量可以正確地到達該容器,並且不同容器在接收請求時不會出現路由衝突。
  • 100 個容器技術相關技能棧
    另外值得一說的是,Hyper 採用虛擬機的方式對環境進行隔離,並不是一種基於容器的隔離方案,但它能很好地與 Docker 或 Kubernetes 等容器集群技術相結合,取代其環境隔離的功能,因此也歸屬此列。由於容器基於內核的特殊隔離方式,對容器性能和狀態的監控與虛擬機存在一些差別。傳統的虛擬機監控工具,例如 Nagios 和 Zabbix 等,對容器監控的原生支持並不十分易用。
  • Docker容器的管理
    下面詳細的演示這部分的應用:#運行docker的鏡像信息[root@wuyaShare ~]# docker run -it centos:7.8.2003 bash[root@b8c896d0a0d6 /]# dateWed Oct 20 08:42:46 UTC 2021[root@b8c896d0a0d6 /]# exitexit
  • 使用Kubernetes進行容器編排
    Google是Linux容器的早期使用者及貢獻者,(實際上,Linux容器為谷歌自己的雲服務提供了支持)Kubernetes消除了容器化應用在部署和擴展過程中涉及到的手動步驟,它能夠將託管Linux容器的伺服器組聚集在一起,同時還允許管理員輕鬆高效地管理這些集群。
  • Drunk Pilot Arrested in Canadian Cockpit Before Take-Off
    Police allege the co-pilot found the pilot passed out in the cockpit."They found him slumped over in the seat. He was the captain," Calgary Sergeant Paul Stacey said.
  • Google的人員管理及容器集群技術案例實踐
    他於2015年回國創辦才雲科技有限公司,將谷歌級容器集群管理平臺和自動化開發運維經驗以PaaS產品和服務的形式提供給國內企業,現已落地國內諸多行業龍頭企業,極大地為其提升了系統穩定性和效率並顯著節省了IT成本。如何更好地進行技術工程管理?
  • 使用容器搭建簡單可靠的容器倉庫
    《使用容器搭建 APT Cacher NG 緩存代理服務》一文提到了緩存,雖然可以使用文末中的 Nginx 的補充方式來提供容器鏡像導出文件的緩存託管,但是這種方式相比較使用鏡像倉庫而言,不能夠直接使用 Docker Client 與之交互,需要藉助導出和導入命令,使用起來頗有不便。
  • 容器、容器雲與Kubernetes技術漫談
    原本沒有虛擬機,所有類型的業務應用都直接跑在物理主機上面,計算資源和存儲資源都難於增減,要麼就是一直不夠用,要麼就一直是把過剩的資源浪費掉,所以後來我們看到大家越來越多得使用虛擬機(或雲主機),物理機的使用場景被極大地壓縮到了像資料庫系統這樣的特殊類型應用上面。原本也沒有容器,我們把大部分的業務應用跑在虛擬機(或雲主機)上面,把少部分特殊類型的應用仍然跑在物理主機上面。
  • 容器引擎CCE新版集群管理功能了解一下
    ,助力企業實現底層架構的容器化和大規模業務效能的提升。  作為國內最早的容器技術探索者和大規模 Kubernetes 集群管理實踐者之一,百度智能雲自2017年正式發布容器引擎 CCE 開始,始終保持著行業領域的前瞻性和領先性,已託管了數百個企業用戶的近萬臺伺服器,運行容器規模已達到十萬級! CCE 集群管理的主要作用是什麼?
  • 如何用 Graylog 管理容器K8S日誌
    ,這節我們學習它和docker容器進行結合。          --log-opt tag="log-test-container-B" \           busybox sh -c 'while true; do echo "This is a log message from container B"; sleep 10; done;'各參數說明如下--log-driver=gelf  使用的
  • 使用 Laravel 服務容器的優勢
    理解服務容器的概念,對於我們使用laravel太重要了,應該說是否理解服務容器的概念是區分是否入門laravel的重要條件。因為整個框架正是在服務容器這一基礎上構建起來的。因為使用了服務容器,laravel中大部分對象實例化的方式是這樣的:$obj1 = $container->make('class1', 'class2');$obj2 = $container->make('class3', 'class4');但是在沒有使用服務容器的情況下,以下這種方式同樣可以做到::
  • 用 Podman Compose 管理容器 | Linux 中國
    Podman 是一個 無守護進程容器引擎,用於開發、管理和在你的 Linux 系統上以 root 或無 root 模式運行 OCI 容器。下面這些文章可以用來了解更多關於 Podman 的信息:如果你使用過 Docker,你很可能也知道 Docker Compose,它是一個用於編排多個可能相互依賴的容器的工具。
  • Windows容器網絡
    我們團隊投入大量資源研發出Windows Server Technical Preview 5容器網絡堆棧,除借鑑Docker的管理經驗外,還研發出Windows容器特有的功能和特性。本文將圍繞Windows容器的網絡堆棧,講述如何使用Docker讓容器網絡連通,以及微軟如何使容器成為基於Microsoft Azure Stack所構建的現代數據中心的一階對象。
  • 使用Docker-Compose編排容器
    通過Docker-Compose用戶可以很容易地用一個配置文件定義一個多容器的應用,然後使用一條指令安裝這個應用的所有依賴,完成構建。Docker-Compose解決了容器與容器之間如何管理編排的問題。
  • 兩大容器管理平臺,Kubernetes與OpenShift有什麼區別?
    但是,跨基礎架構管理容器可能會變得十分複雜,所以容器管理平臺對於任何企業來說都是必不可少的工具。Kubernetes和OpenShift是市場上最受歡迎的兩個容器管理平臺。而OpenShift是基於Kubernetes的,那麼二者之間到底有哪些區別呢?什麼是OpenShift?OpenShift是由紅帽(Red Hat)開發的容器化軟體解決方案。