一、准备工作
1、系统要求
docker要求centos的内核版本不低于3.10。centos7满足最低内核要求。
检查当前的内核版本
bash
[root@zspc /]# uname -r
3.10.0-1160.el7.x86_64
可以看到我当前的内核版本为3.10,符合最低内核要求。
2、卸载旧版本
如果之前安装过Docker的话,需要先卸载。
执行以下命令即可:
bash
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源
bash
# 设置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
bash
yum install docker-ce docker-ce-cli containerd.io
安装过程中如果有提示,就选y。
4、验证是否安装成功
bash
[root@zspc /]# docker -v
Docker version 26.1.4, build 5650f9b
三、启动Docker
一般情况下,启动Docker只需要关闭防火墙即可,但这是极其不安全的行为,所以要想在启用防火墙的情况下运行Docker,就要配置防火墙以允许Docker的相关流量。
1、检查防火墙
执行以下命令检查防火墙状态,可以看到防火墙正在运行
bash
[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 的网络类型,需要在防火墙中打开这种网络类型。
bash
firewall-cmd --permanent --zone=public --add-masquerade
Docker 默认使用 172.17.0.0/16 网段,需要在防火墙中打开这个网段。
bash
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 4 -i docker0 -j ACCEPT
重新加载防火墙以应用新的规则
bash
firewall-cmd --reload
4、启动Docker
bash
systemctl start docker
设置开机自启动
bash
systemctl enable docker
验证是否启动成功
执行 docker ps 命令,出现如下结果,即表示Docker启动成功。
bash
[root@zspc /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES