centos7安装docker详细教程

一、准备工作

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