CentOS 7.9部署Docker環境詳解
作者:尹正傑
版權聲明:原創作品,謝絕轉載!否則將追究法律責任。
一.操作系統環境說明
關於CentOS和Ubuntu的系統安裝可參考我之前錄制的視頻教程: https://www.bilibili.com/video/BV1HZ4y137tS
二.操作系統初始環境配置
1>.關閉並禁用防火牆
[root@docker201.yinzhengjie.com ~]# systemctl stop firewalld [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@docker201.yinzhengjie.com ~]#
2>.禁用並禁用selinux
[root@docker201.yinzhengjie.com ~]# getenforce Enforcing [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# setenforce 0 [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# getenforce Permissive [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# grep ^SELINUX= /etc/selinux/config SELINUX=enforcing [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# sed -ri s'#(SELINUX=)enforcing#\1disabled#' /etc/selinux/config [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# grep ^SELINUX= /etc/selinux/config SELINUX=disabled [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]#
3>.卸載docker較舊的依賴項(如果您的操作系統是剛剛安裝完成的狀態,或者當前服務器沒有安裝過docker環境,則可以跳過該步驟)
現在將Docker Engine軟件包稱為docker-ce,較舊的Docker版本稱為docker或docker-engine。如果已安裝這些程序,請卸載它們以及相關的依賴項。
如果您在之前沒有安裝過docker環境,則無需做當前步驟,如果您非要做該步驟,可能會出現如下圖所示的情況,屬於正常現象!
三.安裝,啟動docker守護進程並配置國內的Registry Mirrors地址實戰
1>.Docker engine常見的安裝方法概述
您可以根據需要以不同的方式安裝Docker Engine:
(1)大多數用戶會 設置Docker的存儲庫並從中進行安裝,以簡化安裝和升級任務。這是推薦的方法。
(2)一些用戶下載並手動安裝RPM軟件包,並完全手動管理升級。這在諸如在無法訪問互聯網的空白系統上安裝Docker的情況下非常有用。
(3)在測試和開發環境中,一些用戶選擇使用自動 便利腳本來安裝Docker。
溫馨提示:
本篇博客是基於存儲庫(需要配置軟件源)的方式進行安裝,即在新主機上首次安裝Docker Engine之前,需要設置Docker存儲庫。之后,您可以從存儲庫安裝和更新Docker。
2>.切換國內的軟件源(本案例切換的是阿里源,當然,您也可以考慮使用其它的公網軟件源喲)
[root@docker201.yinzhengjie.com ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 備份CentOS官網的軟件源 [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # 下載阿里雲的軟件源 [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo # 非阿里雲ESC產品推薦操作該步驟! [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# yum makecache # 生成緩存,目的為了加快我們安裝相關的軟件~ 溫馨提示: 上述的sed命令是可選操作,因為非阿里雲ECS用戶會出現"Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error"信息,不影響使用。 參考鏈接: https://developer.aliyun.com/mirror/centos
3>.配置docker-ce的軟件源(也稱為"存儲庫")
添加docker-ce的軟件源,僅需執行以下兩個步驟即可:
[root@docker201.yinzhengjie.com ~]# yum -y install yum-utils [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo [root@docker201.yinzhengjie.com ~]# 官方軟件源默認啟用了最新的軟件,您可以通過編輯軟件源的方式獲取各個版本的軟件包。例如官方並沒有將測試版本的軟件源置為可用,您可以通過以下方式開啟。同理可以開啟各種測試版本等。 [root@docker201.yinzhengjie.com ~]# yum-config-manager --enable docker-ce-test # 可選操作,若不啟用並不影響安裝docker-ce。 [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# yum-config-manager --enable docker-ce-nightly # 可選操作 [root@docker201.yinzhengjie.com ~]# 如果您啟用了多個Docker存儲庫,則在未在yum installor yum update命令中指定版本的情況下進行安裝或更新將始終安裝可能的最高版本,這可能不適合您的穩定性需求,這個時候我們也可以來禁用最新的軟件源喲~ [root@docker201.yinzhengjie.com ~]# yum-config-manager --disable docker-ce-test [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# yum-config-manager --disable docker-ce-nightly [root@docker201.yinzhengjie.com ~]# 參考鏈接: https://developer.aliyun.com/mirror/docker-ce https://docs.docker.com/engine/install/centos/
4>.安裝Docker Engine和容器
若不指定安裝的docker版本,則默認安裝最新版本的Docker Engine和容器: [root@docker201.yinzhengjie.com ~]# yum -y install docker-ce docker-ce-cli containerd.io 要安裝特定版本的Docker Engine,請在存儲庫中列出可用版本,然后選擇並安裝。返回的列表取決於啟用的存儲庫,並且特定於您的CentOS版本(.el7此示例中的后綴表示) [root@docker201.yinzhengjie.com ~]# yum list docker-ce --showduplicates | sort -r 通過其完全合格的軟件包名稱安裝特定版本,該軟件包名稱是軟件包名稱(docker-ce)加上版本字符串(第二列),從第一個冒號(:)一直到第一個連字符,並用連字符(-)分隔。其語法格式如下所示。 [root@docker201.yinzhengjie.com ~]# yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io # 安裝特定docker版本的語法格式,下面有對應的案例喲~ [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# yum install docker-ce-20.10.1 docker-ce-cli-20.10.1 containerd.io
5>.啟動docker守護進程並設置開機自啟動
[root@docker201.yinzhengjie.com ~]# systemctl start docker [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# systemctl enable docker
6>.查看docker的概要信息
[root@docker201.yinzhengjie.com ~]# docker info
7>.修改docker engine的默認Registry
[root@docker201.yinzhengjie.com ~]# mkdir -p /etc/docker # 創建目錄 [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# tee /etc/docker/daemon.json <<-'EOF' > { > "registry-mirrors": ["https://tuv7rqqq.mirror.aliyuncs.com"] > } > EOF { "registry-mirrors": ["https://tuv7rqqq.mirror.aliyuncs.com"] } [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# cat /etc/docker/daemon.json # tee命令結合重定向輸入的方式寫入文件多用在非用戶交互模式下,我們程序員人為操作服務器時,推薦使用vi等命令行工具來寫入即可。 { "registry-mirrors": ["https://tuv7rqqq.mirror.aliyuncs.com"] } [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# systemctl daemon-reload # 注意哈,記得重新加載守護進程的配置文件! [root@docker201.yinzhengjie.com ~]# [root@docker201.yinzhengjie.com ~]# systemctl restart docker # 為了保險起見,建議大家還是重啟一下docker的守護進程,使得其可以立即生效! [root@docker201.yinzhengjie.com ~]# 參考鏈接: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors