CentOS 7.9部署Docker环境详解
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
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。 欢迎加入基础架构自动化运维:598432640,大数据SRE进阶之路:959042252,DevOps进阶之路:526991186