工欲善其事,必先利其器。
在我們以后的Docker學習中,都推薦使用CentOS6.5作為學習平台,畢竟Docker的內核也是基於Linux的。本文主要分享筆者在CentOS下的安裝Docker的過程。
安裝環境:CentOS6.5。
第一步:
首先進入Docker的官方文檔,我們迅速找到CentOS下的安裝說明。
在CentOS6以后的版本中,Docker包必須在EPEL庫中獲取,所以我們必須先安裝EPEL。如果不了解EPEL(Extra Package for Enterprise Linux)的讀者可以登錄其官網看看,這里我也直接給出安裝過程了。
先下載EPEL的rpm安裝包
終端下命令:
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
下載后通過以下命令安裝EPEL軟件包
sudo rpm -ivh epel-release-6-8.noarch.rpm
最后會有一行:repolist:18323(數字),表示EPEL提供的包的數量,此時就已經成功了。
第二步:
回到官網,我們通過yum安裝Docker,終端下命令:
sudo yum install docker-io
等待安裝成功即可。
啟動Docker服務。
sudo service docker start
現在我們可以嘗試使用Docker了。
sudo docker pull centos:latest
安裝后可能出現的錯誤
筆者依然嘗試運行終端下輸出hello world和搭建web下的hello world,但是這里出現了小問題。
終端下輸出hello world時:
docker run ubuntu:14.04 /bin/echo 'Hello World'
報錯:unable to remount sys readonly: unable to mount sys as readonly max retries reached
圖1.終端下Hello World 失敗
啟動python的web程序時:
docker run -d -P training/webapp python app.py
成功並返回了容器ID,但是當我們查看該容器的狀態時,在STATUS這一欄居然是Exited,也就是說創建成功了,但是啟動失敗了。
圖2.容器啟動失敗
Google一番以后終於找到了問題所在,在CentOS下還需要修改相應的配置文件。
需要把/etc/sysconfig/docker文件中的other-args更改為:
other_args="--exec-driver=lxc --selinux-enabled"
否則的話不起作用,如圖3所示。
圖3.修改配置文件,這里是修改后的截圖
接下來重啟Docker服務:
sudo service docker restart
圖4.重啟Docker服務
再次運行,兩個”hello world”都成功了。
圖5.終端下的hello world
圖6.此時STATUS顯示已啟動的時長,PORTS也顯示了端口映射關系