1.系統、核心
CentOS7 要求64位系統、核心版本3.10以上
CentOS6 要求版本在6.5以上,系統64位、核心版本2.6.32-431以上
檢視核心版本號
uname -r #檢視核心版本
cat /etc/os-release #檢視系統資訊
2.開啟centos-extras資源庫
使用Centos 7,開啟centos-extras
資源庫
centos-extras
這個yum資源庫預設是開啟的,如果禁用了,請開啟
推薦使用Overlay2作為儲存驅動
解除安裝舊版本Docker容器
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
刪除舊版本Docker檔案
sudo rm /var/lib/docker/ -rf
Centos 7線上安裝Docker-CE
本節適用於可訪問網路的情況
設定yum倉庫
安裝必要依賴包
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
新增阿里映象穩定版倉庫
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
新增阿里源時有時會報錯,如果報錯,使用如下命令使用官方源
#刪除異常源
sudo rm -f /etc/yum.repos.d/docker-ce.repo
#使用官方源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
更新yum快取
sudo yum makecache fast
安裝Docker-CE
注意事項:本步驟分兩部分,僅需按需求使用其一
1 安裝最新版
sudo yum install -y docker-ce docker-ce-cli containerd.io
2 安裝指定版本
列出可用版本
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
安裝指定版本
<VERSION_STRING>需要替換為第二列的版本號,如:18.06.0.ce-3.el7
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
啟動Docker服務
sudo systemctl start docker
Centos 7離線安裝Docker-CE
本節僅適用於無外網環境下
下載RPM包
訪問官方網站提供的下載rpm包地址
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
官方提供的離線包主要需要下載
-
containerd.io-<VERSION_STRING>.x86_64.rpm
-
docker-ce-<VERSION_STRING>.x86_64.rpm
-
docker-ce-cli-<VERSION_STRING>.x86_64.rpm
注意事項:
在保證大版本相同下,
docker-ce
與docker-ce-cli
版本要儘量相同不要使用
beta
與rc
版本號帶
.centos
與不帶基本沒什麼區別
注:未提到的docker-ce-selinux
安裝包在新版本中已經被廢棄了,需要下載另外的一個依賴包container-selinux
container-selinux
安裝包下載地址:https://pkgs.org/download/container-selinux
安裝RPM包
官方方式
使用rpm按順序安裝依賴包 或 sudo yum /path/to/package.rpm
,以下為舉例
$ sudo rpm -ivh containerd.io-1.2.5-3.1.el7.x86_64.rpm
$ sudo rpm -ivh docker-ce-cli-18.09.6-3.el7.x86_64.rpm
$ sudo rpm -ivh container-selinux-2.95-2.el7_6.noarch.rpm
$ sudo rpm -ivh docker-ce-18.09.6-3.el7.x86_64.rpm
以上均安裝完成即可,以下是解決問題的思路離線安裝解決問題這部分參考 https://blog.csdn.net/GentleLin/article/details/90294324
官方安裝方式可能出現的問題
1、在安裝以上rpm包的時候,如果出現缺少依賴的錯誤,比如:
error: Failed dependencies:
policycoreutils >= 2.5-11 is needed by container-selinux-2:2.95-2.el7_6.noarch
selinux-policy >= 3.13.1-216.el7 is needed by container-selinux-2:2.95-2.el7_6.noarch
selinux-policy-base >= 3.13.1-216.el7 is needed by container-selinux-2:2.95-2.el7_6.noarch
selinux-policy-targeted >= 3.13.1-216.el7 is needed by container-selinux-2:2.95-2.el7_6.noarch
出現 “>=版本號”:說明你的系統上已經安裝了這些包,只是這些包不是最新的,需要升級以policycoreutils
包為例,可以在https://pkgs.org/上搜尋對應的最新的rpm包,執行以下命令進行升級:
$ sudo rpm -Uvh policycoreutils-2.5-29.el7.x86_64.rpm
如果對應的這個包被其它包依賴(policycoreutils
被policycoreutils-python
包依賴),這時會出現錯誤提示:
error: Failed dependencies:
policycoreutils = 2.5-8.el7 is needed by (installed) policycoreutils-python-2.5-8.el7.x86_64
解決辦法:先以不依賴的方式安裝policycoreutils,再下載新的policycoreutils-python包升級。
$ sudo rpm -Uvh policycoreutils-2.5-29.el7.x86_64.rpm --nodeps
$ sudo rpm -Uvh policycoreutils-python-2.5-29.el7.x86_64.rpm
其它類似錯誤,參考以上方法即可。
2、如果出現的是:
error: Failed dependencies:
xxxxxx is needed by xxxxxxxxxxxxxxxxxx
直接下載對應的包安裝即可。https://pkgs.org/
啟動Docker服務
$ sudo systemctl start docker
安裝後配置
新增國內映象
只有內網的情況下可以不配置
國內映象很多,如阿里雲,網易蜂巢,DaoCloud,Docker中國區官方映象等,這些都可以。
這裡選擇阿里的映象:https://vot9n4p2.mirror.aliyuncs.com
,當然這是我自己免費申請的
sudo vim /etc/docker/daemon.json
,新增如下內容,注意替換映象地址url
{
"registry-mirrors": ["https://vot9n4p2.mirror.aliyuncs.com"]
}
修改Docker根目錄
推薦配置
Docker預設安裝在/var/lib/docker
目錄下,一般而言,如果我們的伺服器沒有把/var
目錄從/
分離出來,那麼就會佔用/
目錄的空間,一般根目錄設定都不會很大,映象、容器等又比較佔硬碟,推薦修改到大容量目錄
sudo vim /etc/docker/daemon.json
,新增"data-root"
指定docker安裝根目錄,注意替換/path/to/path
{
...省略其它配置...,
"data-root": "/path/to/path"
}
容器日誌配置
推薦配置
當容器日誌量變大,長期不處理的話,日誌只會越來越多,佔用空間不說,docker logs -f 容器
時,日誌滾動很久才會到最新的日誌
我們通過設定修改單個日誌配置檔案的最大值與當日志到達最大值後保留的日誌檔案數
sudo vim /etc/docker/daemon.json
{
...省略其它配置...,
"log-driver": "json-file",
"log-opts": {"max-size":"50m", "max-file":"1"}
}
日誌量儘量設定得少一些,50m其實也很大,螢幕也要刷好久,最好在測試與生產環境將輸出到控制檯的日誌寫到檔案或ELK中
新增自建私有倉庫支援
如果沒有可以不配置
有時我們需要將自己公司的docker映象上傳到自建私有倉庫來分發映象
一般而言,我們不會為私有倉庫新增https支援,docker官方又要求需要使用https才能login\pull\push等操作
官方給出的解決辦法是新增insecure-registries
,可同時新增多個
sudo vim /etc/docker/daemon.json
{
...省略其它配置...,
"insecure-registries": ["10.2.7.70:5000"]
}
新增使用者到docker組
只用root使用者可以不配置
非root使用者使用docker
命令需要加sudo
字首,這是可以通過配置避免的
您現在應該考慮將使用者新增到“docker”組
$ sudo usermod -aG docker your-user-name
$ newgrp docker
重啟使Docker配置生效
所有配置修改都需要重啟docker服務才能生效
systemctl daemon-reload
systemctl restart docker
通過docker info
檢視配置是否生效
解除安裝Docker
使用yum包管理方式
$ sudo yum remove docker-ce
刪除docker安裝目錄
刪除docker根目錄為危險操作,會刪除docker容器、映象、資料,請謹慎操作
$ sudo rm -rf /var/lib/docker #預設安裝目錄
通過docker info | grep "Docker Root Dir"
檢視安裝目錄,並刪除此目錄