CentOS安裝Docker-ce並配置中國鏡像
- 2022 年 5 月 7 日
- 筆記
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 //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 //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包地址
//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
安裝包下載地址://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
以上均安裝完成即可,以下是解決問題的思路離線安裝解決問題這部分參考 //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
包為例,可以在//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
直接下載對應的包安裝即可。//pkgs.org/
啟動Docker服務
$ sudo systemctl start docker
安裝後配置
添加中國鏡像
只有內網的情況下可以不配置
中國鏡像很多,如阿里雲,網易蜂巢,DaoCloud,Docker中國區官方鏡像等,這些都可以。
這裡選擇阿里的鏡像://vot9n4p2.mirror.aliyuncs.com
,當然這是我自己免費申請的
sudo vim /etc/docker/daemon.json
,添加如下內容,注意替換鏡像地址url
{
"registry-mirrors": ["//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"
查看安裝目錄,並刪除此目錄