《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic構建和部署》——2.2 容器式Linux係統的Docker配置
本節書摘來自異步社區《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic構建和部署》一書中的第2章,第2.2節,作者: 【美】Christopher Negus(克裏斯托弗•尼格斯)著,更多章節內容可以訪問雲棲社區“異步社區”公眾號查看
2.2 容器式Linux係統的Docker配置
我們使應用程序容器化,不遺餘力地使其變小和變高效,但如果最終要將這些容器部署到緩慢、臃腫的操作係統中,那將使一切努力失去意義。在不斷演進的容器模型中,既然容器已包含運行應用程序所需的可執行文件、庫以及其他組件,宿主操作係統完全可以簡化到隻保留運行容器所需的功能。
Project Atomic和CoreOS這兩個項目的目標是提供專為運行容器而優化的操作係統。這樣的操作係統既能夠直接運行在硬件上,也能運行在公有雲(如亞馬遜的EC2或者Google Compute Engine)、(OpenStack、VMware和Red Hat Engerprise Virtualization提供的)私有虛擬化平台上或者(像Linux KVM宿主機這樣的)個人計算機上的虛擬機中。
同樣,安裝和配置Project Atomic和CoreOS操作係統的方法很多。Project Atomic提供了一個ISO的安裝程序,這類似於Fedora和RHEL係統的安裝——跟隨安裝步驟一路點擊來配置網路、磁盤分區和添加用戶。而CoreOS提供的ISO文件隻是把整個鏡像複製到所選的分區上,然後幾分鍾內就可以啟動了。
當部署到雲環境中時,像cloud-config(CoreOS)和cloud-init(Atomic和其他係統)這樣的工具,可以在需要時用來配置雲端鏡像。
2.2.1 Atomic Host的Docker配置
Atomic項目(www.projectatomic.io)是基於RPM的Liunx發行版構建器,它是為部署和管理容器而專門設計的。Fedora、Red Hat Enterprise Linux和CentOS都有可以作為Atomic宿主機運行的版本。
Atomic Host係統提供了多種形式,以方便在不同環境中應用。可以下載Atomic qcow2鏡像,並通過cloud-init注入配置信息(用戶賬號、主機名、配置文件等)的方式來配置它。對於CentOS Atomic,有用於快速啟動CentOS Atomic虛擬機的Vagrant文件可用。而RHEL Atomic和Fedora Atomic項目提供了用於安裝的ISO,可以使用傳統的安裝程序一步一步地配置Atomic係統。
通過如下鏈接可以找到並下載不同Atomic宿主機版本的鏡像。
Fedora Atomic(https://getfedora.org/cloud/download
):在下載Fedora Cloud頁麵中有一個Atomic Host Images的標簽(點擊進入)。選擇Atomic Host Image來下載鏡像,並使用通常的Fedora安裝程序(anaconda)來安裝Fedora Atomic係統。這個頁麵上還有其他形式的Fedora Atomic可供下載,如qcow2格式(用於OpenStack)以及原始格式的Atomic鏡像文件,還可以通過Vagrant在VirtualBox和KVM(libvirt)環境中啟動Atomic鏡像。最後,還有用於Amazon EC2部署的Atomic鏡像。
CentOS Atomic(https://buildlogs.centos.org/centos/7/isos/x86_64/
):該網站有qcow2格式的鏡像可用。同樣,如果係統已經安裝了vagrant(https://www.vagrantup.com/
),這裏也有vagrant box,可以使用它們立即啟動CentOS Atomic虛擬機。CentOS Atomic的安裝過程與Fedora和RHEL的qcow2格式鏡像的部署過程類似。
RHEL Atomic(https://access.redhat.com/downloads
):下載RHEL Atomic鏡像需要Red Hat的訂閱(正式或評估)。在Red Hat下載頁麵,選擇Red Hat Enterprise Linux,然後在Product Variant部分,選擇Red Hat Enterprise Linux Atomic host。針對不同平台(雲、Red Hat企業虛擬化、Microsoft Hyper-V和VMware vSphere),RHEL Atomic鏡像提供了多種不同格式(qcow2、ova、vhd和ISO)
想了解更多Project Atomic發行版的獲取和安裝方法,請參考Project Atomic快速入門指南(www.projectatomic.io/docs/quickstart)。接下來的示例中,我使用Fedora 22安裝程序搭建起一個Fedora Atomic Host。相同的基本步驟可以用來指導通過Atomic ISO安裝文件配置RHEL。
1.Fedora Atomic Host的Docker配置
與CoreOS一樣,Atomic Host係統已為運行Docker做好了配置。開始按這個過程搭建Fedora Atomic Host前,先下載Fedora Atomic ISO安裝鏡像。可以將ISO鏡像刻錄到一張CD或DVD盤上,而後可以將它直接安裝在計算機硬件上,或者在幾乎所有支持虛擬化的係統上使用。例如,在Linux KVM這樣的係統中,通過virt-manager工具來使用。
(1)下載Fedora Atomic ISO鏡像。下載最新的Fedora Atomic安裝鏡像。查找官方的Fedora 22或更新版本。我使用下列鏡像文件:
https://download.fedoraproject.org/pub/fedora/linux/releases/22/Cloud_Atomic/x86_64/iso/Fedora-Cloud_Atomic-x86_64-22.iso
(2)啟動Fedora Atomic ISO鏡像。要麼從刻錄到光盤上的鏡像直接啟動安裝程序,要麼使用虛擬機管理工具(如virt-manager、OpenStack或其他工具)作為虛擬機啟動。我建議準備至少10 GB的磁盤分區給Fedora Atomic,試試看。
(3)做出安裝選擇。跟隨安裝界麵一步一步地進行設置,這些安裝界麵提供了如何配置係統的信息。多數特性的配置是通過Installation Summary(安裝摘要)界麵完成的,如圖2-1所示。在Installation Summary界麵上,完成如下設置。
圖2-1 通過Installation Summary界麵確定磁盤分區和網絡設置
Keyboard(鍵盤):根據語言與地區選擇鍵盤。
Time & Date(時間和日期):設定日期、時間和時區。默認選擇的是Network Time(網絡時間),係統會和NTP時間服務器同步時間。
Installation Destination(安裝位置):對於該配置項,要麼采用自動分配的磁盤分區,要麼自己選擇一個分區。
Language Support(語言支持):選擇語言。
Network & Host Name(網絡與主機名):網絡是自動打開的(嚐試使用DHCP獲取地址信息)。如果要關閉網絡或者設置自己的主機名,選擇該配置項。完成後點擊Done(完成)。
(4)選擇Begin Installation(開始安裝)。到目前為止,還沒有任何設置作用到你的磁盤分區。如果所有設置都已經完成,選擇Begin Installation。
(5)設置root密碼和用戶。隨著安裝進行,選擇ROOT PASSWORD並設置root密碼。之後,選擇USER CREATION並添加用戶賬號(同時為該用戶設置密碼)。可以設置該用戶是否擁有sudo權限(選擇Make This User Administrator)。選擇Done,返回配置界麵並等待安裝完成。
(6)重啟。安裝完成後,選擇重啟係統,現在就可以開始使用Fedora Atomic Host了。
2.檢查Fedora Atomic Host
用戶無需安裝任何軟件就可以開始使用Docker。實際上,根本無法通過傳統的rpm和yum軟件包工具來為Atomic Host添加軟件。如果要向係統添加軟件,要麼添加普通容器(來運行應用程序),要麼添加擁有超級特權的容器(來添加直接訪問宿主機係統的工具)。
重啟Fedora Atomic Host後,就可以立即使用Docker。docker軟件包應該已經安裝,而且Docker服務已經啟動並啟用了。
通過自動升級來更新Fedora Atomic係統,而自動升級要使用atomic命令。我建議運行下麵的命令來確保你的係統安裝了最新版的Docker以及相關軟件:
# atomic host upgrade
軟件更新後,通過重啟使最新的atomic生效。現在,可以按第3章所描述的搭建Docker registry,或者開始使用docker命令——第4章涉及這一方麵。
2.2.2 CoreOS的Docker配置
CoreOS提供了幾種方式來運行CoreOS係統。這個例子使用了CoreOS的live鏡像。這個鏡像文件可以刻錄到CD中並直接從硬件啟動,或者加載到能夠安裝虛擬機的工具中(例如,許多Linux係統都有的Virtual Machine Manager工具)。
接下來描述了如何使用CoreOS的ISO live鏡像來啟動CoreOS的live係統,以及如何將CoreOS安裝到硬盤並從硬盤啟動係統,這樣就可以開始使用Docker了。
通過以下步驟來獲取CoreOS的ISO live鏡像文件,並從該鏡像文件啟動和安裝CoreOS。
(1)獲取CoreOS。 訪問下麵的鏈接,然後選擇Download Stable ISO來獲取CoreOS的安裝媒介:
https://coreos.com/docs/running-coreos/platforms/iso/
(2)準備安裝媒介。使CoreOS的live安裝媒介可以將CoreOS安裝到硬盤上。可以將它刻錄到CD上,也可以通過VM安裝應用程序指向它(如Linux的Virtual Machine Manager),或者將它複製到PXE服務器上並通過網絡來啟動它。
(3)啟動安裝媒介。如果是安裝到本地虛擬機上或者是雲環境中,要確定為新CoreOS係統保留多少磁盤空間。當CoreOS啟動時,磁盤將映射為/dev/sda或/dev/sdb這樣的設備。
(4)使用live CoreOS。CoreOS會直接啟動到core用戶(該用戶有sudo權限)的shell提示符下。CoreOS默認配置了兩個用戶:root和core。目前CoreOS係統運行在live模式下(還沒安裝)。接下來為安裝做準備。
(5)創建加密口令。 為core用戶創建加密口令。例如,可以使用openssl命令創建一個md5crypt口令(CoreOS自帶這個工具)。提示符出現後,輸入要加密的口令(兩次):
# openssl passwd -1
Password: ********
Verifying - Password: ********
$1$f6e4jyo9$lbch8VJ23oU2cW5grkk4s.
(6)創建cloud-config文件。創建cloud-config文件,並通過該文件為CoreOS添加用戶口令和其他配置信息。參考“使用Cloud-Config”(https://github.com/coreos/coreos-cloudinit/ blob/master/Documentation/ cloud-config.md
)了解cloud-config文件內容的詳細信息。在這個例子中,創建名為cloud-config.yaml的文件,其文件內容如下(將passwd的字符串替換為上一步生成的字符串):
#cloud-config
users:
- name: core
passwd: $1$f6e4jyo9$lbch8VJ23oU2cW5grkk4s.
groups:
- sudo
- docker
(7)運行coreos-install腳本。運行下麵的命令,將CoreOS鏡像安裝到之前選定的磁盤設備上(這裏使用的是/dev/sda):
$ sudo coreos-install -d /dev/sda -c cloud-config.yaml
Checking availability of "local-file"
Fetching user-data from datasource of type "local-file"
Downloading the signature for https://stable.release.core-os.net...
...
Downloading, writing and verifying coreos_production_image.bin.bz2...
...
Success! CoreOS stable 647.0.0 is installed on /dev/sda
(8)重啟。鏡像安裝完成後,重啟係統:
$ sudo reboot
(9)登錄。CoreOS重啟後,使用core用戶以及之前為該用戶分配的加密口令登錄係統。
至此,你就可以搭建Docker registry(第3章),或者開始使用docker命令(第4章)。
最後更新:2017-05-31 17:01:26