一、准备工作
1、系统要求
docker要求centos的内核版本不低于3.10。centos7满足最低内核要求。
检查当前的内核版本
[root@zspc /]# uname -r 3.10.0-1160.el7.x86_64
可以看到我当前的内核版本为3.10,符合最低内核要求。
2、卸载旧版本
如果之前安装过Docker的话,需要先卸载。
执行以下命令即可:
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine docker-ce
二、安装Docker
1、安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken
2、更新本地镜像源
由于国内网络原因,所以这里使用阿里的docker源
# 设置docker镜像源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sed -i 's/download.docker.com/mirrors.aliyun.com/docker-ce/g' /etc/yum.repos.d/docker-ce.repo yum makecache fast
3、安装Docker
yum install docker-ce docker-ce-cli containerd.io
安装过程中如果有提示,就选y。
4、验证是否安装成功
[root@zspc /]# docker -v Docker version 26.1.4, build 5650f9b
三、启动Docker
一般情况下,启动Docker只需要关闭防火墙即可,但这是极其不安全的行为,所以要想在启用防火墙的情况下运行Docker,就要配置防火墙以允许Docker的相关流量。
1、检查防火墙
执行以下命令检查防火墙状态,可以看到防火墙正在运行
[root@zspc /]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2024-08-13 11:28:52 CST; 24h ago
2、配置防火墙
Docker 使用了一种名为 bridge 的网络类型,需要在防火墙中打开这种网络类型。
firewall-cmd --permanent --zone=public --add-masquerade
Docker 默认使用 172.17.0.0/16 网段,需要在防火墙中打开这个网段。
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 4 -i docker0 -j ACCEPT
重新加载防火墙以应用新的规则
firewall-cmd --reload
4、启动Docker
systemctl start docker
设置开机自启动
systemctl enable docker
验证是否启动成功
执行 docker ps 命令,出现如下结果,即表示Docker启动成功。
[root@zspc /]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES