Docker目前只能執行在64位元平臺上,並且要求核心版本不低於3.10,實際上核心越新越好,過低的核心版本容易造成功能不穩定。
使用者可以通過如下命令檢查自己的核心版本詳細資訊:
$ uname -a Linux ubuntu 4.4.0-131-generic #157-Ubuntu SMP Thu Jul 12 15:51:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
或
$ cat /proc/version Linux version 4.4.0-131-generic (buildd@lgw01-amd64-015) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #157-Ubuntu SMP Thu Jul 12 15:51:36 UTC 2018
Docker目前支援的最低Ubuntu版本為:14.04 LTS,但實際上從穩定性上考慮,推薦至少使用16.04 LTS版本。
注意:
Ubuntu發行版中,LTS(Long-Term-Support)意味著更穩定的功能和更長期(目前為5年)的升級支援,生產環境中儘量使用LTS版本。
如果使用Ubuntu 16.04 LTS 版本,為了讓Docker使用aufs儲存,推薦安裝如下兩個軟體包:
$ sudo apt-get update $ sudo apt-get install -y linux-image-extra-$(uname -r) linux-image-extra-virtual
如果出現如下異常:
Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package linux-image-extra-4.4.0-185-generic E: Couldn't find any package by glob 'linux-image-extra-4.4.0-185-generic' E: Couldn't find any package by regex 'linux-image-extra-4.4.0-185-generic'
解決方案:
linux-image-generic 應該已經安裝了相關的 linux-image-extra 包,但名稱已更改為 linux-modules-extra 。試試這個升級到最新的核心:
$ sudo apt update $ sudo apt upgrade $ sudo apt install --reinstall linux-image-generic
然後,重新啟動並嘗試使用以下命令:
$ sudo apt install linux-modules-extra-$(uname -r) linux-image-extra-virtual
首先需要安裝 apt-transport-https 包支援HTTPS協定的源:
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
新增源的gpg金鑰:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
設定穩定版倉庫:
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
新增成功後,更新apt軟體包快取:
$ sudo apt-get update
$ apt-get install docker-ce docker-ce-cli containerd.io
由於網路原因,安裝過程可能會失敗,重新執行安裝命令即可。該方式安裝的為最新版的Docker CE和containerd。
檢視docker版本:
$ docker --version
Docker version 20.10.2, build 2291f61
檢查Docker CE是否安裝正確:
$ sudo docker run hello-world
出現如下資訊,表示安裝成功:
要解決這個問題,必須抓住LInux的許可權管理:要把當前的使用者新增到docker group.
$ sudo usermod -a -G docker $USER //將當前使用者新增到docker組中 $ newgrp docker #更新使用者組 # 退出並重新登入後,組資訊才會生效 $ docker ps #測試docker命令是否可以使用sudo正常使用
notes:
-a :在-G存在的情況下,增加次要使用者組的支援,不是修改當前使用者組
-G :修改當前次要組
-G -a :是增加新的次要組
解除安裝Docker Engine,CLI和Containerd軟體包:
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io
主機上的映像,容器,卷或自定義組態檔不會自動刪除。要刪除所有影象,容器和卷:
$ sudo rm -rf /var/lib/docker
必須手動刪除所有已編輯的組態檔。