1.查看Linux内核版本
使用uname -a命令查看linux内核版本,安装Docker要求内核版本不能低于3.10
其他查看版本命令
cat /proc/version
uname -r
2.更新系统
sudo yum update
更新时可能会出现报错
已加载插件:fastestmirror, langpacks
/var/run/yum.pid 已被锁定,PID 为 96423 的另一个程序正在运行。
Another app is currently holding the yum lock; waiting for it to exit...
另一个应用程序是:PackageKit
内存:134 M RSS (558 MB VSZ)
已启动: Sun Jun 23 06:40:35 2024 - 2:23:42之前
状态 :睡眠中,进程ID:96423
解决:一般执行rm -f /var/run/yum.pid就可以了
1./var/run/yum.pid 已被锁定,意味着有其他进程正在使用yum进行软件包管理操作。如果没有其他yum进程,可以尝试删除/var/run/yum.pid。
2.如果删除文件后仍然出现锁定,可以检查是否有其他YUM进程正在运行,使用命令 ps aux | grep yum 查看。
3.如果有YUM进程在运行,等待其完成或者使用 kill 命令终止相关进程,例如 kill -9 PID,其中PID是YUM进程的ID
4.删除 /var/run/yum.pid 文件或终止进程后,再次尝试运行YUM命令
3.安装必要的软件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
中间出现y/n,直接输入y继续即可。
安装yum-utils、device-mapper-persistent-data和lvm2这三个软件包通常与Docker的安装和配置有关
1.yum-utils是一个包含多种实用工具的集合,用于增强yum包管理器的功能。其中,yum-config-manager是yum-utils中的一个工具,它允许用户方便地管理系统中的软件源,定制所需的软件包来源。在安装Docker时,yum-config-manager可以用于添加Docker的软件仓库配置,使得系统可以通过yum方便地安装和更新Docker软件包。
2.device-mapper是Linux 2.6内核中支持逻辑卷管理的通用设备映射机制,为存储资源管理的块设备驱动提供了一个高度模块化的内核架构。device-mapper-persistent-data是device-mapper的一个组件,它提供了对持久性数据的支持,使得即使在系统重启后,也能保持device-mapper的配置信息。Docker的某些存储驱动程序(如Device Mapper)依赖于device-mapper-persistent-data来确保数据的持久性和可靠性。
3.LVM(Logical Volume Manager)是Linux环境下对磁盘分区进行管理的一种机制,它建立在硬盘和分区之上的一个逻辑层,用于提高磁盘管理的灵活性。LVM允许用户动态地增加或减少逻辑卷的大小,而不会丢失现有的数据。Docker的某些存储驱动程序(如Device Mapper)也依赖于LVM来管理底层存储资源2。通过LVM,Docker可以更加灵活地管理存储资源,从而提供更好的性能和可靠性。
因此,在安装Docker之前,安装yum-utils、device-mapper-persistent-data和lvm2这三个软件包是为了确保Docker能够正常安装、配置和运行,并提供更好的性能和可靠性。
看到完毕,表示更新完成:
4.设置镜像源
对于CentOS 7.x,您可以使用以下命令来添加Docker CE的软件源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
或者使用阿里云提供的镜像源(更快)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
此处我设置的是阿里的镜像源
5.安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io
看到完毕,表示安装完成
6..配置Docker镜像存放目录
如果您需要自定义Docker镜像的存放目录,可以编辑/etc/docker/daemon.json文件
sudo vim /etc/docker/daemon.json
在文件中添加以下内容:
{
"graph": "/data/docker-data"
}
然后重新加载配置并启动Docker服务
sudo systemctl daemon-reload
sudo systemctl start docker
在使用sudo systemctl start docker可能会出现以下报错
Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details.
To force a start use "systemctl reset-failed docker.service" followed by "systemctl start docker.service" again.
解决方式:
1.mv /etc/docker/daemon.json /etc/docker/daemon.conf
2.systemctl start docker
7.启动Docker服务并设置开机自启
sudo systemctl enable docker
8.验证Docker安装
docker --version