歡迎光臨
每天分享高質量文章

在 Linux 上安裝和使用 Docker | Linux 中國

Docker 使得創建、部署,和管理容器變得特別簡單。更好的是,安裝和使用 Docker 在 Linux 平臺上特別的方便。
— Jack Wallen


本文導航
編譯自 | https://www.linux.com/learn/intro-to-linux/2017/11/how-install-and-use-docker-linux 
 作者 | Jack Wallen
 譯者 | DarkSun

容器現在風靡於 IT 界 —— 這很好理解。容器是輕量級的,包含應用運行所需所有東西(代碼、庫、運行時環境、系統設置,以及依賴關係)的獨立的包。每個容器都部署於它自己的 CPU、記憶體、塊 I/O,以及網絡資源上,所有這些都不依賴於某個內核和操作系統。這也是容器與虛擬機之間最大的不同;相比之下,虛擬機是一個運行於宿主機操作系統上的完整的操作系統平臺,而容器不是。

容器允許你以一種前所未有的方式擴展交付能力(不管內部還是外部的)。例如,你可以快速部署多個 NGINX 實體(甚至可以應用於多個不同的階段 —— 比如開發和生產階段)。跟虛擬機不同,容器不會消耗太多系統資源。

Docker[1] 使得創建、部署,和管理容器變得特別簡單。更好的是,安裝和使用 Docker 在 Linux 平臺上特別的方便。

我將會向你演示在 Linux 上安裝 Docker 是多麼方便,同時帶你入門 Docker。我的演示平臺是 Ubuntu 16.04 Server[2],但流程在大多數其它 Linux 平臺都差不多。

我這裡假設你已經啟動了 Ubuntu Server 16.04。

安裝

由於 Ubuntu Server 16.04 缺少圖形界面,我會完全通過命令列來安裝和使用 Docker。在你安裝前,你需要更新 apt 然後進行必要的升級。一定要註意,若系統內核升級了,你會需要重啟系統。因此最好挑個服務器能重啟的時間進行。

運行下麵命令更新 apt

  1. sudo apt update

完成後,使用命令升級系統:

  1. sudo apt upgrade

若內核升級了,你需要用下麵命令重啟服務器:

  1. sudo reboot

若內核沒有升級,你就可以安裝 Docker 了(無需重啟)。安裝 Docker 的命令為:

  1. sudo apt install docker.io

若你使用的是其它 Linux 發行版,當嘗試用相應的包管理器來安裝時卻發現沒有 docker.io包,則你應該安裝 docker 包。例如,在 Fedora[3] 上安裝應該用命令:

  1. sudo dnf install docker

若你使用的是 CentOS 7,那麼最好使用安裝腳本來安裝 docker。首先使用命令 sudo yum check-update 更新系統。升級完後,輸入下麵命令來下載並運行所需的腳本:

  1. curl -fsSL https://get.docker.com/ | sh

預設情況下,只有管理員權限能夠運行 docker 命令。考慮到安全問題,你不會想用 root 用戶或使用 sudo 來運行 Docker 的。要解決這個問題,你需要將自己的用戶加入到 docker 組中。命令如下:

  1. sudo usermod -a -G docker $USER

完成操作後,登出系統然後再重新登錄,應該就搞定了。不過若你的平臺是 Fedora,則添加用戶到 docker 組時會發現這個組是不存在的。那該怎麼辦呢?你需要首先創建這個組。命令如下:

  1. sudo groupadd docker && sudo gpasswd -a ${USER} docker && sudo systemctl restart docker

  2. newgrp docker

登出後再登錄。就可以開始用 Docker 了。

啟動,暫停以及啟用 Docker

安裝好 Docker 後,你可以讓系統在啟動時自動啟動 Docker 守護行程。使用下麵兩個命令來實現這一點:

  1. sudo systemctl start docker

  2. sudo systemctl enable docker

若需要暫停或重啟 Docker 守護行程,則命令為:

  1. sudo systemctl stop docker

  2. sudo systemctl restart docker

現在可以用 Docker 來部署容器了。

拉取鏡像

對 Docker 來說,鏡像是構建容器的基石。你可以拉下一個鏡像(比如 NGINX[4])然後根據這個鏡像部署任意多個容器出來。使用鏡像前,你首先需要把鏡像拉取到系統中。鏡像從註冊倉庫中拉取,預設情況下安裝好的 Docker 包含了一個預設的註冊倉庫 Docker Hub[5] —— 這個註冊倉庫包含了大量別人所貢獻的鏡像(既包括官方的鏡像,也包括用戶自己貢獻的鏡像)。

假設你想要拉取一個 Nginx Web 服務器相關的鏡像。在開始拉取前,先檢查一下系統中已經有了哪些鏡像。輸入 docker images 命令你會發現現在還沒有鏡像存在(圖 1)。

圖 1:還沒有鏡像。

讓我們來拉取一個鏡像。使用下麵命令可以從 Docker Hub 中下載 Nginx 鏡像:

  1. docker pull nginx

上面命令會從 Docker Hub 下載最新的(官方的) Nginx 鏡像。現在再運行 docker images 命令就能看到有列出鏡像了(圖 2)。

圖 2:NGINX 鏡像已經被拉取下來了。

註意到我這裡說的是“官方” Nginx 鏡像了嗎?在 Docker Hub 上有很多的非官方 Nginx 鏡像。這些非官方鏡像都是基於各種不同的目的而創建出來的。你可以使用下麵過命令來搜索 Docker Hub 中的所有 Nginx 鏡像:

  1. docker search nginx

你會發現(圖 3 中),有很多基於不同目的所創建的 Nginx 鏡像(反向代理、PHP-FPM(LCTT 譯註:FastCGI 行程管理器FastCGI Process Manager是一個 PHPFastCGI 管理器,旨在將 FastCGI 行程管理整合進 PHP 包中)功能、LetsEncrypt(LCTT 譯註:由 ISRG 提供的免費 SSL 專案),Bitnami,在樹莓派上使用的 Nginx 和 Drupal,等等很多很多)。

圖 3:Docker Hub 上找到的各種 NGINX 鏡像。

假設,你想要下載內建有反向代理功能的 Nginx 鏡像,有個非官方的鏡像 jwilder/nginx-proxy。因此輸入下麵命令來拉取這個鏡像:

  1. docker pull jwilder/nginx-proxy

再輸入 docker images 命令來查看新拉下來的這個鏡像(圖 4)。

圖 4:已經有了兩種不同的 NGINX 鏡像了。

處於謹慎考慮,我建議只使用官方鏡像,畢竟你無法確定非官方鏡像是否包含了惡意代碼。

有了鏡像後就可以用它來部署容器了。下次我們再聊聊如何通過這些 Nginx 鏡像來發佈容器。

Docker 是一個超級強力的系統可以讓你的工作更簡單,讓你的公司更具有伸縮性,也更靈活。想知道 Docker 還能做什麼,運行 man docker 然後閱讀它的說明檔案吧。


via: https://www.linux.com/learn/intro-to-linux/2017/11/how-install-and-use-docker-linux

作者:Jack Wallen[7] 譯者:lujun9972 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

LCTT 譯者

DarkSun(lujun9972) ? ? ? ?
共計翻譯:77 篇
貢獻時間:78 天


推薦文章

< 左右滑動查看相關文章 >

點擊圖片、輸入文章 ID 或識別二維碼直達

赞(0)

分享創造快樂