Docker系列(2)—CentOS7下YUM安裝Docker

Docker系列(2)—CentOS7下YUM安裝Docker

一、安裝要求說明

要安裝Docker,需要CentOS 7 & 8 64位核心3.10及以上的維護版本。不支援測試或存檔版本。

必須啟用centos-extras儲存庫。 預設情況下,此儲存庫已啟用,但如果已將其禁用,則需要重新啟用它。

建議使用overlay2儲存驅動程式。

注:Docker現在分為兩個版本,Docker CE和Docker EE。其中Docker CE為開源版,Docker EE為企業版。

本文中使用本地VM虛機部署測試。

OS:CentOS Linux release 7。8。2003 (Core) 3。10。0-1160。15。2。el7。x86_64

虛機配置:2核CPU、4G記憶體

注:①系統為最小化安裝,部署前已完成系統初始化、核心及安全最佳化;

②Iptables防火牆已啟用,Docker服務啟動容器時對映的埠會自動新增至Iptables防火牆相關規則中,不需要手動更改Iptables規則。

本文參考官方部署文件:

https://docs。docker。com/install/linux/docker-ce/centos/

Docker版本更新說明:

https://docs。docker。com/engine/release-notes/

二、檢視系統及核心版本

cat /etc/redhat-releaseuname -r

Docker系列(2)—CentOS7下YUM安裝Docker

三、解除安裝舊版本

舊版本Docker被稱為docker或docker-engine。 如果已安裝這些,請解除安裝它們以及相關的依賴項。

yum -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

注:

如果沒有安裝這些軟體包,那就沒關係。保留/var/lib/docker/的內容,包括映象、容器、卷和網路。 Docker CE包現在稱為docker-ce。

四、安裝Docker CE

可根據需要以不同方式安裝Docker CE:

①設定Docker官方YUM源進行安裝,以便於安裝和升級任務。這是推薦的方法。

②下載RPM軟體包並手動安裝並完全手動管理升級。這在沒有聯網的伺服器作業系統上安裝Docker的情況下非常有用。

③在開發和測試環境中,可使用指令碼來自動安裝Docker。

下面會一一介紹三種安裝方式,但本文中的虛擬測試環境使用的是YUM安裝最新版本Docker。

4.1 使用儲存庫(即YUM源倉庫)安裝

1) 安裝yum-utils包

yum -y install yum-utils //yum-utils提供yum-config-manager實用程式

2) 安裝設定YUM源倉庫

## 官網yum-config-manager ——add-repo https://download。docker。com/linux/centos/docker-ce。repo## 國內阿里雲yum-config-manager ——add-repo http://mirrors。aliyun。com/docker-ce/linux/centos/docker-ce。repo

3) 啟用測試或每晚儲存庫

(可選操作)

這些儲存庫包含在上面的docker。repo檔案中,但預設情況下處於禁用狀態。 可以將它們與穩定儲存庫(即YUM源)一起啟用。

yum-config-manager ——enable docker-ce-testyum-config-manager ——enable docker-ce-nightly

可以透過使用——disable標誌執行yum-config-manager命令來禁用測試或每晚儲存庫。 要重新啟用它,請使用——enable標誌。 以下命令禁用測試或每晚儲存庫。

yum-config-manager ——disable docker-ce-testyum-config-manager ——disable docker-ce-nightly

注:從Docker 17.06開始,穩定版本也會被推送到測試或每晚儲存庫。

4) 更新yum軟體包索引

yum makecache fast

5) 安裝Docker CE

在生產環境中,應該安裝特定版本的 Docker CE,而不是使用最新版本。

## 安裝最新版本:

yum -y install docker-ce docker-ce-cli containerd。io

## 安裝指定版本:

使用命令列出repo中的可用穩定版本,按版本號(從高到低)對結果進行排序,返回的列表取決於啟用的儲存庫(源),並且特定於您的CentOS版本,本文件使用的CentOS7。6系統,即所返回的版本以。el7字尾表示。

yum list docker-ce。x86_64 ——showduplicates | sort -r //從高到低列出Docker-ce的版本

Docker系列(2)—CentOS7下YUM安裝Docker

透過其完全合格的軟體包名稱安裝特定版本,該軟體包名稱是軟體包名稱(docker-ce)加上版本字串(第二列),從第一個冒號(:)到第一個連字元,以連字元(-)分隔。例如,docker-ce-20。10。2。

yum -y install docker-ce- docker-ce-cli- containerd。io

例如:指定版本(docker-ce-20。10。2)進行安裝:

yum -y install docker-ce-20。10。2 docker-ce-cli-20。10。2 containerd。io

4.2 從軟體包安裝

如果無法使用Docker的儲存庫來安裝Docker,則可以下載rpm包檔案進行手動安裝。並且每次要升級Docker時,都需要下載一個新檔案。

訪問官網https://download。docker。com/linux/centos/ 並選擇您的CentOS版本。然後瀏覽x86_64/stable/Packages/ 並下載所需安裝Docker版本的。rpm檔案。

注意:要安裝夜間或測試(預釋出)軟體包,請將上述URL中的stable更改為nightly或test。

將下面的路徑更改為所需Docker版本軟體包的下載路徑。

yum -y install /path/to/package。rpm

4.3 使用指令碼安裝

Docker在get。docker。com和test。docker。com上提供了便捷指令碼,用於快速、非互動地將Docker CE的邊緣和測試版本安裝到開發環境中。 指令碼的原始碼位於docker-install儲存庫中。 建議不要在生產環境中使用這些指令碼,並且在使用它們之前應該瞭解潛在的風險:

①指令碼需要root或sudo許可權才能執行。 因此在執行指令碼之前,應仔細檢查和稽核指令碼。

②這些指令碼會嘗試檢測您的Linux發行版和版本,併為您配置包管理系統。 此外,指令碼不允許您自定義任何安裝引數。 從Docker的角度或您自己組織的指導方針和標準來看,這可能會導致配置不受支援。

③指令碼安裝包管理器的所有依賴項和建議,而不要求確認。這可能會安裝大量軟體包,具體取決於主機的當前配置。

④該指令碼不提供選項來指定要安裝的Docker版本,並安裝在“邊緣”通道中釋出的最新版本。

⑤如果已使用其他機制在主機上安裝了Docker,請不要使用便捷指令碼。

## 安裝步驟

cd /data/toolscurl -fsSL https://get。docker。com -o get-docker。shsh get-docker。sh

注:

①此示例使用get。docker。com上的指令碼在Linux上安裝最新版本的Docker CE。 要安裝最新的測試版本,請改用test。docker。com。 在每個命令中,將每次出現的get替換為test。

②Docker CE是基於DEB的發行版上自動啟動。安裝Docker CE後,在基於RPM的發行版上,需要使用適當的systemctl或service命令手動啟動它。 非root使用者預設情況下無法執行Docker命令。

③若使用指令碼安裝了Docker,則應直接使用軟體包管理器升級Docker。 重新執行指令碼沒有任何好處,如果它嘗試重新新增儲存庫,則可能會導致問題。

4.4 啟動Docker

systemctl start docker

4.5 驗證

透過執行hello-world映像驗證是否正確安裝了docker

docker run hello-world

此命令下載測試映像並在容器中執行它。 當容器執行時,它會列印一條資訊性訊息並退出。

Docker系列(2)—CentOS7下YUM安裝Docker

使用命令檢視會看到本地Docker映象庫中多了一個Hello-world,Docker容器庫中也多了一個Hello-world。

docker ps -adocker image list

Docker系列(2)—CentOS7下YUM安裝Docker

五、Docker服務管理

啟動:systemctl start docker

重啟:systemctl restart docker

停止:systemctl stop docker

開機啟動:systemctl enable docker

檢視狀態:systemctl status docker

六、核心引數修改

預設配置下,如果在CentOS使用Docker CE看到下面的這些警告資訊:

WARNING: IPv4 forwarding is disabledWARING: bridge-nf-call-iptables is disabledWARING: bridge-nf-call-ip6tables is disabled

需啟用這三個功能,修改/etc/sysctl。conf檔案,新增如下內容

net。ipv4。ip_forward = 1net。bridge。bridge-nf-call-ip6tables = 1net。bridge。bridge-nf-call-iptables = 1

重新載入即可

/sbin/sysctl -p

若執行/sbin/sysctl –p時出現如下報錯

sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: No such file or directorysysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory

解決方法:

modprobe br_netfilter

Docker系列(2)—CentOS7下YUM安裝Docker

七、配置映象加速

鑑於國內網路問題,後續拉取Docker映象十分緩慢,可配置加速器來解決。

官方文件:

https://docs。docker。com/registry/recipes/mirror/#run-a-registry-as-a-pull-through-cache

Docker國內映象:

官方中國:https://registry。docker-cn。com網易:http://hub-mirror。c。163。com中國科技大學:https://docker。mirrors。ustc。edu。cn阿里雲容器生成自己的加速地址登入:https://cr。console。aliyun。com/  得到一個專屬的映象加速地址,類似於“https://1234abcd。mirror。aliyuncs。com”

在Linux系統下,新版的 Docker 使用 /etc/docker/daemon。json 來配置 Daemon。

請在該配置檔案中加入(沒有該檔案的話,請先建一個):

mkdir -p /etc/dockervi /etc/docker/daemon。json //輸入如下內容{ “registry-mirrors”: [ “https://registry。docker-cn。com”, “http://hub-mirror。c。163。com”, “https://docker。mirrors。ustc。edu。cn” ]}

配置成功後,重啟服務:

## 重新載入服務配置檔案systemctl daemon-reload## 重啟docker後臺服務systemctl restart docker

檢視是否成功

docker info

Docker系列(2)—CentOS7下YUM安裝Docker

八、修改預設儲存路徑

預設情況下,docker的預設儲存路徑是/var/lib/docker,這相當於直接掛載系統目錄下,而一般在安裝系統時,這個區都不會太大,所以如果長期使用docker應用,就需要把預設的路徑更改到分割槽大的路徑下或外掛儲存。

1。新建儲存目錄

mkdir -p /data/docker //本文中系統分割槽掛載點/data空間大

2。修改docker的docker。service配置檔案

vi /usr/lib/systemd/system/docker。service######註釋原先的#ExecStart=/usr/bin/dockerd -H fd:// ——containerd=/run/containerd/containerd。sock######新增如下內容ExecStart=/usr/bin/dockerd -H fd:// ——containerd=/run/containerd/containerd。sock ——graph=/data/docker

3。重啟docker服務

systemctl daemon-reloadsystemctl restart docker

4。檢視docker的輸出資訊,確定下是否修改成功

docker info

Docker系列(2)—CentOS7下YUM安裝Docker

5。檢視修改後目錄生成的檔案資訊

ls /data/docker

Docker系列(2)—CentOS7下YUM安裝Docker

九、升級Docker CE

要升級Docker CE,需下載較新的軟體包檔案並重復安裝過程

yum -y upgrade docker-ce

十、解除安裝Docker CE

解除安裝Docker CE,CLI和Containerd軟體包:

yum -y remove docker-ce docker-ce-cli containerd。io

主機上的映象、容器、卷或自定義配置檔案不會自動刪除,必須手動刪除所有映象、容器、卷及所有已編輯的配置檔案。

rm -rf /var/lib/docker## 本文中使用下列命令rm -rf /data/docker