Docker(2)-CentOS安裝
前言
本人文章均引用或者複製:
公眾號:
QQ群:806951874
在Centos系統中安裝Docker
前言
網上很多關於docker在centos系統上的安裝教程,但是又各有異同,比較混亂。所以,此文章接下來的對於docker的安裝,將參照官方的文件進行安裝。
官方文件地址:https://docs.docker.com/install/linux/docker-ce/centos/
Docker版本
Docker如今劃分成了2個版本:
- Docker CE(社群版)
- Docker EE(企業版)
具體詳情以及區別,就不多做說明了。我們一般都會選擇Docker CE(社群版),因為CE版本是開源免費的。對於大多數企業公司都比較節約成本。
因此,文章中所使用的Docker版本均為Docker CE版本。
安裝Docker CE版本的先決條件
官方文件中有這樣一段描述:
> OS requirements > To install Docker CE, you need a maintained version of CentOS 7. Archived versions aren’t supported or tested.
翻譯過來的中文意思就是:
OS要求
要安裝Docker CE,您需要維護的CentOS 7版本。不支援或測試歸檔版本。
官方推薦的系統是centos7以上,但其實centos6也是可以安裝docker的,並沒有強制必須是centos7。
但是我的文章是基於最新的centos7系統,所以對於低版本的centos系統如何安裝docker,請自行網上查詢資料或者實際操作。
解除安裝舊版本
老版本的Docker被稱為docker或docker-engine。如果安裝了它們,請解除安裝它們以及相關的依賴項。
在Linux命令列執行的命令如下:
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine \
安裝Docker CE
Docker CE安裝的不同方式
- 設定Docker的儲存庫並從中進行安裝,以便安裝和升級任務。這是推薦的方法。
- 有些使用者下載RPM軟體包並手動安裝,並完全手動管理升級。這對於在無法訪問網際網路的系統上安裝Docker等情況很有用。
- 在測試和開發環境中,一些使用者選擇使用自動便利指令碼來安裝Docker。
這裡我們就選擇第一種方式進行安裝,這也是推薦的做法。
至於其他的安裝方式,可自行網上學習,這裡不做過多講解。
使用儲存庫進行安裝
首次在新主機上安裝Docker CE之前,需要設定Docker儲存庫。之後,您可以從儲存庫安裝和更新Docker。
設定儲存庫
- 安裝所需的包。 yum-utils提供yum-config-manager實用程式,devicemapper儲存驅動程式需要device-mapper-persistent-data和lvm2。
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 \
- 使用以下命令設定穩定的儲存庫。 即使您想從邊緣或測試儲存庫安裝構建,也總是需要穩定的儲存庫。
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- (可選):啟用邊緣和測試儲存庫。 這些儲存庫包含在上面的docker.repo檔案中,但預設情況下處於禁用狀態。 您可以將它們與穩定的儲存庫一起啟用。
yum-config-manager --enable docker-ce-edge
yum-config-manager --enable docker-ce-test
- (可選):與上一步相反的作用。通過使用–disable標誌執行yum-config-manager命令,可以禁用邊緣或測試儲存庫。 要重新啟用它,請使用–enable標誌。 以下命令禁用邊緣儲存庫。
yum-config-manager --disable docker-ce-edge
注意:從Docker 17.06開始,穩定版本也被推到邊緣並測試版本庫。
瞭解穩定和邊緣構建 :https://docs.docker.com/install/
安裝Docker CE
- 安裝最新版本的Docker CE:
yum install docker-ce
如果命令列下面出現如下圖所示的確認資訊,請輸入“y”繼續,主要是用於處理依賴包的事情
如果沒有,則需要新增yum源:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
上一步輸入“y”之後,後面可能會遇到下圖所示的確認提示資訊,同樣的輸入“y”即可:
稍作等待,當命令列最終輸出“Complete!”即表示安裝完成:
啟動Docker
systemctl start docker
驗證Docker是否安裝成功
最簡單的驗證方式,就是使用 docker version 命令,類似於JDK的 java -version 一樣的道理。
Docker安裝成功的話,就可以直接在命令列執行Docker的命令的。
docker version
如果出現如下圖所示資訊,說明Docker以及安裝成功了!
【可選】:當然,你也可以通過執行 hello-world 映像來檢驗Docker是否安裝成功:
docker run hello-world
上面的命令含義:下載官方提供的用於測試使用的hello-world映象並將其執行到容器中,來檢驗Docker服務是否正常安裝並執行。
執行上面的命令之後,Docker會自動下載hello-world映象並自動執行到容器中,當命令列中出現“Hello from Docker!”的字樣,說明已經成功運行了hello-world映象,一切就OK了!
這裡就簡單的作為Docker的入門操作,很簡單的吧。讓你有一個比較直觀的感覺~
Docker預設掛載目錄
Docker CE安裝成功之後,你可以發現 /var/lib 目錄下有一個 docker 目錄,你可以進入Docker目錄檢視Docker的一些結構,如下圖所示:
其中有一個containers 目錄,這個目錄就是存放Docker容器的。上面我們有提及到 hello-world 映象,如果你運行了 hello-world 映象,那麼這個映象所生成的容器資訊,就會儲存在 containers 目錄中。
具體 containers 目錄中存放了什麼內容,可自行網上查詢資料學習。
啟動Docker
配置Docker在系統啟動時啟動
未配置Docker在系統啟動時啟動,則系統重啟之後,Docker服務是無法正常訪問
如何解決?
手動啟動Docker服務:
通過在命令列中執行以下命令,即可實現Docker服務的啟動:
systemctl start docker
這時候重新在命令列中執行 docker version命令,效果如下:
出現Server相關的資訊,標明Docker服務正常啟動了,就可以對Docker進行一系列操作
上面這種啟動方式存在什麼不足呢?
當伺服器重啟的時候,Docker服務依然不能自動啟動,還是需要手工去啟動Docker服務。
那能不能做到系統重啟之後,Docker服務自動啟動,答案肯定是有的。
實現Docker服務隨著系統重啟後自動啟動
大多數當前的Linux發行版(RHEL,CentOS,Fedora,Ubuntu 16.04和更高版本)使用systemd來管理在系統啟動時啟動哪些服務。
通過在命令列執行以下命令,用於設定Docker在系統重啟時,自動啟動Docker服務
systemctl enable docker
執行該命令之後,會顯示如下結果:
主要的意思就是 設定Docker服務會隨著伺服器重啟,會自動啟動Docker服務。
當然,執行該命令之後,對於當前的Docker服務狀況是沒有啟動服務的,需要手動啟動Docker服務;只有下次伺服器重啟,就無需手動啟動Docker服務了。
官方文件介紹:https://docs.docker.com/install/linux/linux-postinstall/#configure-docker-to-start-on-boot
注意一點:由於Linux不同版本的系統的差異、或者低版本的系統,命令或許會出現差異。如有遇到這樣的問題,請自行網上查詢資料解決。
解除安裝Docker CE
如果需要解除安裝機器上已經安裝的Docker CE,可以通過簡單命令實現。
- 解除安裝Docker包:
yum remove docker-ce
- 上面的命令,不會自動刪除主機上的影象,容器,卷或自定義配置檔案。要想刪除所有影象,容器和卷,執行以下命令:
rm -rf /var/lib/docker
注意:必須手動刪除任何已編輯的配置檔案
shell一鍵安裝
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh
這樣執行完了就完成安裝了,簡單便捷
然後啟動docker
sudo systemctl start docker