準備工作
系統要求
Docker 支援 64 位版本 CentOS 7/8,並且要求核心版本不低於 3.10。 CentOS 7 滿足最低核心的要求,但由於核心版本比較低,部分功能(如 overlay2 儲存層驅動)無法使用,並且部分功能可能不太穩定。
解除安裝舊版本
舊版本的 Docker 稱為 docker 或者 docker-engine,使用以下命令解除安裝舊版本:
sudo 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
使用 yum 安裝
執行以下命令安裝依賴包:
sudo yum install -y yum-utils
鑑於國內網路問題,強烈建議使用國內源,官方源請在註釋中檢視。
執行下面的命令新增 yum 軟體源:
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
官方源
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
如果需要測試版本的 Docker 請執行以下命令:
sudo yum-config-manager --enable docker-ce-test
yum 安裝Docker
更新 yum 軟體源快取,並安裝 docker-ce。
sudo yum install docker-ce docker-ce-cli containerd.io
使用指令碼自動安裝
在測試或開發環境中 Docker 官方為了簡化安裝流程,提供了一套便捷的安裝指令碼,CentOS 系統上可以使用這套指令碼安裝,另外可以透過 –mirror 選項使用國內源進行安裝:
若你想安裝測試版的 Docker, 請從 test.docker.com 獲取指令碼
curl -fsSL test.docker.com -o get-docker.sh
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
sudo sh get-docker.sh --mirror AzureChinaCloud
執行這個命令後,指令碼就會自動的將一切準備工作做好,並且把 Docker 的穩定(stable)版本安裝在系統中。
CentOS8 額外設定
由於 CentOS8 防火牆使用了 nftables,但 Docker 尚未支援 nftables, 我們可以使用如下設定使用 iptables:
更改 /etc/firewalld/firewalld.conf
# FirewallBackend=nftables
FirewallBackend=iptables
或者執行如下命令
firewall-cmd --permanent --zone=trusted --add-interface=docker0
firewall-cmd --reload
啟動 Docker
sudo systemctl enable docker
sudo systemctl start docker
建立 docker 使用者組
預設情況下,docker 命令會使用 Unix socket 與 Docker 引擎通訊。而只有 root 使用者和 docker 組的使用者才可以訪問 Docker 引擎的 Unix socket。出於安全考慮,一般 Linux 系統上不會直接使用 root 使用者。因此,更好地做法是將需要使用 docker 的使用者加入 docker 使用者組。
建立 docker 組
sudo groupadd docker
將當前使用者加入 docker 組
sudo usermod -aG docker $USER
退出當前終端並重新登入,進行如下測試。
測試 Docker 是否安裝正確
若能正常輸出以上資訊,則說明安裝成功。