《第一本Docker書(修訂版)》——2.3 在Red Hat和Red Hat係發行版中安裝Docker
本節書摘來自異步社區《第一本Docker書(修訂版)》一書中的第2章,第2.3節,作者:【澳】James Turnbull(詹姆斯•特恩布爾)著,更多章節內容可以訪問雲棲社區“異步社區”公眾號查看
2.3 在Red Hat和Red Hat係發行版中安裝Docker
在Red Hat企業版Linux(或者CentOS或Fedora)中,隻有少數幾個版本可以安裝Docker,包括:
RHEL(和CentOS)6或以上的版本(64位);
Fedora 19或以上的版本(64位);
Oracle Linux 6和Oracle Linux 7,帶有Unbreakable企業內核發行版 3(3.8.13)或者更高版本(64位)。
提示
在Red Hat企業版Linux 7及更高版本中,Docker已經成為係統自帶的軟件包了,並且,隻有Red Hat企業版Linux 7是Red Hat官方支持Docker的發行版本。
2.3.1 檢查前提條件
在Red Hat和Red Hat係列的Linux發行版中,安裝Docker所需的前提條件也並不多。
1.內核
可以使用代碼清單2-17所示的uname命令來確認是否安裝了3.8或更高的內核版本。
代碼清單2-17 檢查Red Hat或Fedora的內核
$ uname -a
Linux darknight.example.com 3.10.9-200.fc19.x86_64 #1 SMP Wed Aug
21 19:27:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
目前所有官方支持的Red Hat和Red Hat係列平台,應該都安裝了支持Docker的內核。
2.檢查Device Mapper
我們這裏使用Device Mapper作為Docker的存儲驅動,為Docker提供存儲能力。在Red Hat企業版Linux、CentOS 6或Fedora 19及更高版本宿主機中,應該也都安裝了Device Mapper,不過還是需要確認一下,如代碼清單2-18所示。
代碼清單2-18 檢查Device Mapper
$ ls -l /sys/class/misc/device-mapper
lrwxrwxrwx 1 root root 0 Oct 5 18:50 /sys/class/misc/device-mapper
-> ../../devices/virtual/misc/device-mapper
同樣,也可以在/proc/devices文件中檢查是否有device-mapper條目,如代碼清單2-19所示。
代碼清單2-19 在Red Hat的proc文件中檢查Device Mapper
$ sudo grep device-mapper /proc/devices
如果沒有檢測到Device Mapper,也可以試著安裝device-mapper軟件包,如代碼清單2-20所示。
代碼清單2-20 安裝Device Mapper軟件包
$ sudo yum install -y device-mapper
提示
在新版本的Red Hat係列發行版本中, yum命令已經被dnf命令取代,它們的語法並沒有什麼變化。
安裝完成後,還需要加載dm_mod內核模塊,如代碼清單2-21所示。
代碼清單2-21 加載Device Mapper模塊
$ sudo modprobe dm_mod
模塊加載完畢,就應該可以找到/sys/class/misc/device-mapper條目了。
2.3.2 安裝Docker
在不同版本的Red Hat中,安裝過程略有不同。在RHEL 6或CentOS 6中,需要先添加EPEL軟件包的倉庫。而Fedora中則不需要啟用EPEL倉庫。在不同的平台和版本中,軟件包命名也有細微的差別。
1.在RHEL 6和CentOS 6中安裝Docker
對於Red Hat企業版Linux 6和CentOS 6,可以使用代碼清單2-22所示的RPM軟件包來安裝EPEL。
代碼清單2-22 在RHEL 6和CentOS 6中安裝EPEL
$ sudo rpm –Uvh https://download.fedoraproject.org/pub/epel/6/i386
/epel-release-6-8.noarch.rpm
安裝完EPEL後,就可以安裝Docker了,如代碼清單2-23所示。
代碼清單2-23 在RHEL 6和CentOS 6中安裝Docker軟件包
$ sudo yum -y install docker-io
2.在RHEL 7中安裝Docker
RHEL 7或更高的版本可以按照代碼清單2-24所示的指令來安裝Docker。
代碼清單2-24 在RHEL 7中安裝Docker
$ sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
$ sudo yum install -y docker
要想訪問Red Hat的Docker軟件包和文檔,必須是Red Hat的客戶,並擁有RHEL服務器訂閱授權(RHEL Server subscription entitlement)。
3.在Fedora中安裝Docker
在不同版本的Fedora中,有幾個軟件包的名稱有所不同。在Fedora 19中,要安裝docker-io這個軟件包,如代碼清單2-25所示。
提示
在新版本的Red Hat係列發行版本中,yum命令已經被dnf命令取代,它們的語法並沒有什麼變化。
代碼清單2-25 在Fedora 19中安裝Docker
$ sudo yum -y install docker-io
在Fedora 20或更高的版本中,軟件包的名稱已經改為docker,如代碼清單2-26所示。
代碼清單2-26 在Fedora 20或更高版本中安裝Docker
$ sudo yum -y install docker
而在Fedora 21中,軟件包的名稱又回退到了docker-io,如代碼清單2-27所示。
代碼清單2-27 在Fedora 21上安裝Docker
$ sudo yum -y install docker-io
最後,到了Fedora 22,軟件包的名稱則又變回了docker。同時,也是在Fedora 22,yum命令也不被推薦使用,被dnf命令取代了,如代碼清單2-28所示。
代碼清單2-28 在Fedora 22上安裝Docker
$ sudo dnf install docker
提示
可以在官方網站(https://docs.docker.com/engine/installation/oracle/)
找到如何在Oracle Linux上安裝Docker的文檔。
2.3.3 在Red Hat係發行版中啟動Docker守護進程
軟件包安裝完成後就可以啟動Docker守護進程了。在RHEL 6或CentOS 6中,可以用代碼清單2-29所示的命令啟動守護進程。
代碼清單2-29 在Red Hat 企業版Linux 6中啟動Docker守護進程
$ sudo service docker start
想要在係統開機時自動啟動Docker服務,還應該執行代碼清單2-30所示的命令。
代碼清單2-30 確保在RHEL 6中開機啟動Docker
$ sudo service docker enable
在RHEL 7或Fedora中啟動Docker服務,則需要執行代碼清單2-31所示的命令。
代碼清單2-31 在RHEL 7中啟動Docker守護進程
$ sudo systemctl start docker
想要在係統開機自動啟動Docker服務,還要執行代碼清單2-32所示的命令。
代碼清單2-32 確保在Red Hat企業版7中開機啟動Docker
$ sudo systemctl enable docker
完成上述工作後,就可以用docker info命令來確認Docker是否已經正確安裝並運行了,如代碼清單2-33所示。
代碼清單2-33 在Red Hat係列發行版中檢查Docker是否正確安裝
$ sudo docker info
Containers: 0
Images: 0
. . .
提示
也可以直接從Docker官方網站下載RHEL[20]、CentOS[21]和Fedora[22]用的最新版RPM包。
最後更新:2017-06-01 14:31:35