CentOS安裝Docker-ce並配置國內映象

zhanghuan!發表於2022-05-06

前提條件

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-cedocker-ce-cli 版本要儘量相同

  • 不要使用betarc

  • 版本號帶.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

如果對應的這個包被其它包依賴(policycoreutilspolicycoreutils-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"檢視安裝目錄,並刪除此目錄

相關文章