CentOS 安裝 Docker
Linux安裝docker的前提條件:
- 必須是64位CPU架構的計算機,Docker目前不支持32位CPU;
- 運行Linux3.8或更高版本內核,CentOS時內核必不小於3.10;
- 內核必須支持一種合適的存儲驅動,可以是Device Manager、AUFS、vfs、btrfs、以及默認的驅動Device Mapper中的一個;
- 內核必須支持並開啟cgroup和命名空間namespace功能。
檢查前提條件
內核
通過uname命令來檢查內核版本信息。
檢查內存驅動是否存在,即檢查Device Mapper
版本說明
Docker從1.13.x版本開始,版本分為企業版EE和社區版CE,版本號也改為按照時間線來發布,比如17.03就是2017年3月,有點類似於ubuntu的版本發布方式。
Docker Engine改為Docker CE(社區版)
它包含了CLI客戶端、後臺進程/服務以及API。用戶像以前以同樣的方式獲取。CE版分為Stable和Edge兩種發布方式。
- Stable版本是季度發布方式,比如17.03, 17.06, 17.09
- Edge版本是月份發布方式, 比如17.03, 17.04......
- Edge版本每月發布,提供一個月支持。
- Stable版本每季度發布,提供4個月支持。
Docker Data Center改為Docker EE(企業版)
企業版提供一些額外的收費服務。企業版說明在這裏
正常學習和開發個人認為CE已經是足夠的了!
卸載舊版本
Docker的舊版本被稱為docker
docker-engine
。 如果安裝了這些,請卸載它們以及關聯的依賴關系。
sudo yum remove docker docker-common docker-selinux docker-engine
安裝Docker CE
可以根據需要以不同的方式安裝Docker CE:
設置了Docker的存儲庫並從中安裝,以方便安裝和升級任務。 這是推薦的方法。
下載RPM軟件包並手動安裝並手動管理升級。
這在諸如在沒有訪問互聯網的空隙系統上安裝Docker的情況下是有用的。
在測試和開發環境中,使用自動化便利腳本來安裝Docker。
使用存儲庫進行安裝
安裝存儲庫
安裝必須的包。
yum-utils
提供了yum-config-manager
實用程序,並且device-mapper-persistent-data
和lvm2
需要devicemapper
存儲驅動程序。這一步前面的檢查如果通過,可以跳過。sudo yum install -y yum-utils device-mapper-persistent-data lvm2
使用以下命令設置穩定存儲庫。
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
可選:啟用test和edge。 這些存儲庫包含在上面的docker.repo文件中,但默認情況下禁用。 您可以將它們與穩定版本庫一起啟用。
sudo yum-config-manager --enable docker-ce-edge sudo yum-config-manager --enable docker-ce-test
可以通過運行帶有
--disable
標誌的yum-config-manager
命令來禁用edge或test庫。 要重新啟用它,請使用--enable
標誌。 以下命令禁用edge存儲庫。sudo yum-config-manager --disable docker-ce-edge
從Docker 17.06開始,穩定的版本也被推到了edge和test存儲庫
安裝
- 安裝最新版本的Docker CE,或轉到下一步安裝特定版本。
sudo yum install docker-ce
警告:如果啟用了多個Docker存儲庫,則在
yum install
或yum update
命令中不安裝或更新版本將始終安裝盡可能高的版本,這可能不適合您的穩定性需求。
如果這是您第一次從最近添加的存儲庫安裝軟件包,系統將提示您接受GPG密鑰,並顯示密鑰的指紋。 驗證指紋是否正確,如果是,請接受密鑰。 指紋應該匹配
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
Docker已安裝但未啟動。 Docker組已創建,但沒有用戶添加到組中。
- 在生產系統上,您應該安裝特定版本的Docker CE,而不是始終使用最新版本。 列出可用的版本。 此示例使用排序
-r
命令對結果進行排序,版本號由最高到最低,並被截斷。
yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 17.09.ce-1.el7.centos docker-ce-stable
列表的內容取決於啟用哪些存儲庫,並且將特定於您的CentOS版本(在本示例中由版本的.el7後綴表示)。 選擇要安裝的特定版本。 第二列是版本字符串。 您可以使用整個版本字符串,但您至少需要包含第一個連字符。 第三列是存儲庫名稱,它指示軟件包的存儲庫以及其穩定性級別。 要安裝特定版本,請將版本字符串附加到包名稱,並用連字符(-)分隔。
版本字符串是包名稱加上直到第一個連字符的版本。 在上面的示例中,完全限定的包名稱是
docker-ce-17.09.ce
。
sudo yum install <FULLY-QUALIFIED-PACKAGE-NAME>
3.啟動Docker
sudo systemctl start docker
4.通過運行hello-world映像來驗證Docker是否正確安裝。
sudo docker run hello-world
此命令下載hello-world圖像並在容器中運行它。 當容器運行時,它打印一條信息消息並退出。
Docker CE已安裝並運行。 您需要使用sudo
來運行Docker命令。 繼續執行Linux安裝後,允許非特權用戶運行Docker命令和其他可選配置步驟。
從包裝中安裝
如果您不能使用Docker的存儲庫來安裝Docker,則可以下載您的版本的.rpm
文件並手動安裝。 每次要升級Docker時,都需要下載一個新文件。
1訪問https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
並下載要安裝的Docker版本的.rpm文件。
要安裝edge包,請將上述URL中的stable更改為edge。
2.安裝Docker CE,將下面的路徑更改為您下載Docker程序包的路徑。
sudo yum install /path/to/package.rpm
Docker已安裝但未啟動。 Docker組已創建,但沒有用戶添加到組中。
3.啟動Docker
sudo systemctl start docker
4.通過運行hello-world映像來驗證Docker是否正確安裝。
sudo docker run hello-world
此命令下載hello-world圖像並在容器中運行它。 當容器運行時,它打印一條信息消息並退出。
Docker CE已安裝並運行。 您需要使用sudo來運行Docker命令。 繼續執行Linux的安裝後步驟,以允許非特權用戶運行Docker命令和其他可選配置步驟。
升級Docker
要升級Docker CE,請下載較新的軟件包文件並重復安裝過程,使用yum -y升級而不是yum -y install,並指向新文件。
使用便利腳本進行安裝
Docker在get.docker.com
和test.docker.com
上提供了方便的腳本,用於將Docker CE的穩定和測試版本,快速、非交互式安裝到開發環境中。 腳本的源代碼位於docker-install存儲庫中。 不建議在生產環境中使用這些腳本,您應該在使用這些腳本之前了解潛在的風險:
- 腳本需要root或sudo權限才能運行。 因此,在運行腳本之前,應仔細檢查和審核腳本。
- 這些腳本嘗試檢測您的Linux發行版和版本,並為您配置您的軟件包管理系統。 此外,腳本不允許您自定義任何安裝參數。 這可能導致不受支持的配置,無論是從Docker的角度還是從您自己的組織的準則和標準。
- 腳本安裝包管理器的所有依賴關系和建議,而不要求確認。這可能會安裝大量的軟件包,具體取決於主機的當前配置。
- 如果Docker已經使用其他機制安裝在主機上,則不要使用便利腳本。
此示例使用get.docker.com
上的腳本在Linux上安裝最新的Docker CE版本。 要安裝最新的測試版本,請改用test.docker.com
。 在下面的每個命令中,將每次出現的get
與test
進行替換。
警告:在本地運行之前,始終檢查從互聯網下載的腳本。
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh
<output truncated>
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 for this to take effect!
WARNING: Adding a user to the "docker" group will grant the ability to run
containers which can be used to obtain root privileges on the
docker host.
Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
for more information.
Docker CE已安裝。 它在基於DEB的發行版上自動啟動。 在基於RPM的發行版中,您需要使用適當的systemctl
或service
命令手動啟動它。 消息顯示,非root用戶默認情況下無法運行Docker命令。
使用方便腳本後升級
如果使用便捷腳本安裝Docker,則應直接使用程序包管理器升級Docker。 重新運行方便腳本沒有任何好處,如果嘗試重新添加已經添加到主機的存儲庫,可能會導致問題。
卸載 Docker CE
- 卸載Docker包
sudo yum remove docker-ce
- 主機上的圖mages, containers, volumes或自定義配置文件不會自動刪除。 刪除所有mages, containers, volumes:
sudo rm -rf /var/lib/docker
必須手動刪除任何定義配置文件。
CentOS 安裝 Docker