2017年5月24日 星期三

CentOS 7 安裝 Docker 容器

資訊來源:https://www.openfoundry.org/tw/enterprise-application/9349-centos7

Docker套件的安裝與使用
CentOS 7.0採用了以Linux Containers技術為基礎的輕量級Docker虛擬化應用。它與許多新手IT所熟悉的虛擬機器(Virtual Machine)是不一樣的。一般的虛擬機器都有各自的虛擬化電腦硬體,來安裝與使用各自獨立的客端作業系統(Guest OS),這種作法相當耗用實體的硬體資源,但其優點是容易部署各式各樣的作業系統,包括了像是Windows、Mac、Linux、FreeBSD等等。

至於Docker容器(Container)運作的概念,則是共用一個主體的作業系統核心,然後分隔出各自獨立的運行空間,就好像一位房東將一棟房子重新裝潢後,分隔出多間的小套房來出租一樣,雖然都是在同一棟房子之中,但各自的空間卻可以自行擺設所需要的東西。採用這種容器虛擬化技術的優點,就在於可節省掉許多硬體資源,但缺點就是這一些分支出去的容器,只能夠使用相同的作業系統核心,簡單來說就是您無法在CentOS 7.0的Docker虛擬化環境中,建立與使用Windows、Mac等不屬於Linux核心的容器。

關於在CentOS 7.0下安裝Docker服務的方法,只要像如圖下達sudo yum install docker即可。目前最新的版本為1.3.2。


▲圖 安裝docker套件

完成docker套件的安裝之後,請下達systemctl start docker命令來啟動它即可。至於如果希望每一次CentOS系統啟動時自動執行,請如圖50所示下達systemctl enable docker命令。

啟用docker服務

對於目前執行中的docker完整版本資訊檢視,請如圖51所示下達docker version即可,其內容包括了用戶端版本、用戶端API版本、伺服端版本、伺服端API版本等資訊

查看docker版本資訊

確認docker服務正在執行之中,便可以開始來下載與安裝所需要的容器映像檔,以取得最新版本的CentOS映象檔來說,只要下達sudo docker pull centos即可,如果是Ubuntu Linux的映象檔,請如圖52所示下達sudo docker pull ubuntu命令。如果Fedoa Linux映象檔,則可以下達sudo docker pull fedora。

安裝映像檔

關於映象檔的下載安裝,您可以先行線上的搜尋結果後,再來決定所要安裝的映象檔名稱。以Ubuntu Linux系列的映象檔來說,您就可以下達docker search ubuntu,便可以像如圖53所示一樣,找到所有以Ubuntu系列為主的Linux映象檔。其中凡是有標示為OfficialTrusted字眼的映象檔,皆是您最佳的選擇。

搜尋Ubuntu系列映像檔

如果您想要知道目前已下載安裝的映象檔有哪一些,只要下達docker images命令即可,範例中便可以看到目前有關Ubuntu的映象檔共有五個,而Fedora則有兩個。進一步您可以下達docker info命令,來得知目前Docker中容器的數量、映象檔數量、集區的區塊配置大小、資料檔位置、中繼資料檔位置、資料已使用的空間大小、資料可用的總空間大小、中繼資料已使用的空間大小、中繼資料可用的總空間大小、程式庫版本資訊、Linux核心的版本資訊以及目前的CentOS版本資訊等等。

查看目前映像檔資訊

接下來您可以嘗試在某一指定的容器中執行命令,例如您可以下達docker run Ubuntu:latest ls –l命令,便可以像如圖55所示一樣,檢視到目前Ubuntu容器中的目錄清單。另一個例子是執行docker run centos:latest cat /etc/centos-release,便可以察看到目前這個CentOS容器的系統版本資訊。

執行docker命令

當您想要知道在目前的Docker服務之中執行過了哪一些命令,只要像如圖56所示一樣下達docker ps –a命令,即可查詢到曾經在哪一個容器之中執行過什麼命令參數。

查看docker執行過的命令

我們除了能夠將Docker指定的命令參數,執行在某一個容器的終端機命令列之中,也可以選擇先進入到該容器之後,再對於該容器中的Linux系統進行管理。如圖57所示筆者以docker run -i –t ubuntu:latest /bin/bash來進入到此容器的終端機提示列下,然後下達lsb_release –a命令參數來查看目前所在容器的系統版本資訊。另外在此還可以看到每一個container都有一個唯一的ID,來顯示在root@字元提示之後。若是想要離開目前的容器,只要下達exit命令或是按下Ctrl+D按鍵即可。

進入容器終端機

既然我們可以使用Docker的命令來進入到任一個容器的作業系統之中,那麼肯定也可以執行許多該系統所提供的命令工具,或是在該系統之中安裝各類軟體套件。如此一來不就可以讓不同的伺服器服務分散運作在不同的容器之中。如圖58所示便是筆者下達一個最常用的ifconfig命令,來查看目前這個容器系統的預設IP位址配置。

查看容器網路配置

接下來就讓我們來嘗試在這個Ubuntu Linux的容器之中,下載安裝一個Apache2的網站服務套件吧。請如圖59所示下達apt-get install apache2即可。

在容器中安裝Apache2套件

成功完成Apache2套件的安裝之後,便可以先下達service apache2 status來查看此網站服務的執行狀態,如果尚未啟動就請下達service apache2 start來執行它即可。

啟動容器的網站服務

成功安裝與啟動Ubuntu Linux的Apache網站服務之後,我們便可以回到CentOS主機的桌面中,開啟瀏覽器來嘗試連線此容器的網站服務。如圖61所示便是Apache2 Ubuntu網站服務預設的首頁。

連線容器的Apache網站

關於CentOS 7.0於虛擬化平台的部署,您除了可以選擇將它安裝在以KVM、VirtualBox、Xen、XenServer以及VMware為主的相關虛擬機器之外,同樣也可以將它安裝在Windows Server 2012 R2、Windows 8.1企業版(專業版)或是免費的Hyper-v 2012 R2的Hyper-v虛擬機器之中。如圖所示便是一個CentOS 7.0虛擬機器,正運行於Hyper-v 3.0 R2平台的範例,由於它已支援Hyper-v的動態記憶體配置技術,因此可讓整體資源的使用率最大化。

 將CentOS部署在Hyper-v

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。

cas server 一直圈圈或取得狀態異常

重點: cas server 不能開 VPN,會造成取的來源 dns 異常,會一直轉圈圈或等很久。