在 Linux 上安裝 Docker 是常見的安裝場景,并且安裝過程非常簡單。
通常難點在于 Linux 不同發行版之間的輕微區別,比如 Ubuntu 和 CentOS 之間的差異。
接下來的示例基于 Ubuntu 版本 Linux,同樣適用于更低或者更高的版本。
理論上,下面的示例在 CentOS 的各種版本上也是可以執行的。至于 Linux 操作系統是安裝在自己的數據中心,還是第三方公有云,或是筆記本的虛擬機上,都沒有任何的區別。唯一需求就是這臺機器是 Linux 操作系統,并且能夠訪問 https://get.docker.com。
首先讀者需要選擇安裝的 Docker 版本。當前有兩個版本可供選擇:社區版(Community Edition,CE)和企業版(Enterprise Edition,EE)。
Docker CE 是免費的,并且是接下來示例中將要使用的版本。
Docker EE 包含 Docker CE 中的全部功能,還包括了商業支持以及與其他 Docker 產品的集成,比如 Docker 可信鏡像庫和通用控制面板。
下面的例子使用wget命令來運行一個 Shell 腳本,完成 Docker CE 的安裝。
更多其他在 Linux 上安裝 Docker 的方式,可以打開 Docker 主頁面(www.docker.com),單擊頁面中 Get Started 按鈕來獲取。
注:在開始下面的步驟之前,要確認系統升級到最新的包,并且打了相應的安全補丁。
⒈ 在 Linux 機器上打開一個新的 Shell。
⒉ 使用wget從 https://get.docker.com 獲取并運行 Docker 安裝腳本,然后采用 Shell 中管道(pipe)的方式來執行這個腳本。
$ wget -qO- https://get.docker.com/ | sh
modprobe: FATAL: Module aufs not found /lib/modules/4.4.0-36-generic
+ sh -c 'sleep 3; yum -y -q install docker-engine'
If you would like to use Docker as a non-root user, you should
now consider adding your user to the "docker" group with
something like:
sudo usermod -aG docker your-user
Remember that you will have to log out and back in...
⒊ 最好通過非 root 用戶來使用 Docker。這時需要添加非 root 用戶到本地 Docker Unix 組當中。
下面的命令展示了如何把名為 npoulton 的用戶添加到 Docker 組中,以及如何確認操作是否執行成功。
$ sudo usermod -aG docker npoulton
$ cat /etc/group | grep docker
docker:x:999:npoulton
如果當前登錄用戶就是要添加到 Docker 組中的用戶的話,則需要重新登錄,組權限設置才會生效。
至此 Docker 已經在 Linux 上安裝成功。運行下面命令來確認安裝結果。
$ docker --version
Docker version 18.01.0-ce, build 03596f5
$ docker system info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 18.01.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
如果上述步驟在自己的 Linux 發行版中無法成功執行,可以訪問 Docker Docs 網站(https://docs.docker.com)并單擊與自己的版本相關的那個鏈接。
接下來頁面會跳轉到 Docker 官方提供的適合當前版本的安裝指南頁面,這個安裝指南通常會保持更新。
但是需要注意,Docker 網站上提供的指令使用了包管理器,相比前面的例子需要更多的步驟才能完成安裝操作。
實際上,如果讀者使用瀏覽器打開網頁 https://get.docker.com,會發現這其實就是一個 Shell 腳本,腳本中已經幫讀者定義好了安裝相關的指令,包括設置 Docker 為系統開啟自啟動。
如果未從官方 Docker 倉庫下載源碼,則最終安裝的可能是 Docker 的一個復制版本。過去一些 Linux 發行商選擇復制了 Docker 的代碼,并基于此開發了一些定制化的版本。
需要注意類似的情況,因為運行一個與 Docker 官方版本不同的復制版,可能遇到異常退出的情況。
如果本意就是采用該版本運行,那這不是問題。但是如果本意并非如此,復制版本中發行商提交的一些改動可能導致其版本無法與 Docker 官方版本相兼容。這樣就無法從 Docker 公司或者 Docker 公司授權的合作伙伴那里獲得商業支持。