1. 准备工作

在 CentOS Stream 10 系统上安装 Docker 之前,需要完成一些基础的系统配置。

1.1 修改主机名

为了方便识别,建议先修改主机名:

[root@192 ~]# hostnamectl set-hostname c-docker
[root@192 ~]# su
[root@c-docker ~]#

1.2 确认操作系统版本

检查当前系统是否为 CentOS Stream 10:

[root@c-docker ~]# cat /etc/centos-release
CentOS Stream release 10 (Coughlan)

如果是 Rocky Linux 系统,则显示如下:

[root@R-docker ~]# cat /etc/rocky-release
Rocky Linux release 10.2 (Red Quartz)

1.3 测试网络连通性

确保主机能够访问互联网,以便后续下载软件包:

[root@c-docker yum.repos.d]# ping www.baidu.com
PING www.a.shifen.com (183.2.172.177) 56(84) bytes of data.
64 bytes from 183.2.172.177: icmp_seq=1 ttl=128 time=35.8 ms
64 bytes from 183.2.172.177: icmp_seq=2 ttl=128 time=74.1 ms
64 bytes from 183.2.172.177: icmp_seq=3 ttl=128 time=35.5 ms
64 bytes from 183.2.172.177: icmp_seq=4 ttl=128 time=29.3 ms
# 以上结果说明可以联网

2. 配置 Docker 软件源

为了获得更快的下载速度,建议使用国内镜像源。

2.1 安装必要系统工具

# yum-utils 是一个 yum 的工具箱软件,可以获得 yum-config-manager
yum install -y yum-utils

2.2 添加阿里云 Docker CE 软件源

# 添加阿里云的软件仓库
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
查看仓库文件
[root@c-docker ~]# cd /etc/yum.repos.d/
[root@c-docker yum.repos.d]# ls
centos-addons.repo  centos.repo  docker-ce.repo

说明:docker-ce.repo 是仓库配置文件,里面定义了阿里云仓库的网址,可以理解为“藏宝图”,通过它就能找到 Docker 软件包。

3. 安装 Docker

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

各组件说明:

  • docker-ce:Docker Community Edition,Docker 社区版主程序
  • docker-ce-cli:Docker 命令行客户端
  • containerd.io:容器运行时,底层核心
  • docker-buildx-plugin:多架构镜像构建插件
  • docker-compose-plugin:Compose 官方插件,替代旧版 docker-compose,用于批量编排多个容器

4. 启动 Docker 服务

# 启动 Docker
systemctl start docker
重启 Docker
systemctl restart docker
停止 Docker
systemctl stop docker
设置 Docker 开机自启
systemctl enable docker

4.1 验证 Docker 是否运行

查看 Docker 进程:

[root@c-docker ~]# ps aux | grep docker
root       12369  3.0  1.1 2020932 88080 ?       Ssl  16:18   0:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root       12565  0.0  0.0   6380  1960 pts/0    S+   16:18   0:00 grep --color=auto docker

其中 /usr/bin/dockerd 是 Docker 守护进程(daemon),表示服务已在后台运行。

4.2 查看 Docker 版本

[root@c-docker ~]# docker version
Client: Docker Engine - Community
 Version:           29.6.1
 API version:       1.55
 Go version:        go1.26.4
 Git commit:        8900f1d
 Built:             Fri Jun 26 11:44:00 2026
 OS/Arch:           linux/amd64
 Context:           default
Server: Docker Engine - Community
Engine:
Version:          29.6.1
API version:      1.55 (minimum version 1.40)
Go version:       go1.26.4
Git commit:       8ec5ab3
Built:            Fri Jun 26 11:40:12 2026
OS/Arch:          linux/amd64
Experimental:     false
containerd:
Version:          v2.2.5
GitCommit:        e53c7c1516c3b2bff98eb76f1f4117477e6f4e66
runc:
Version:          1.3.6
GitCommit:        v1.3.6-0-g491b69ba
docker-init:
Version:          0.19.0
GitCommit:        de40ad0

5. 传统软件安装方式对比(以 Nginx 为例)

5.1 使用 yum 安装 Nginx

yum install nginx -y

5.2 启动 Nginx 服务

# 传统方式
service nginx start
新方式(推荐)
systemctl start nginx
停止服务
service nginx stop
或
systemctl stop nginx
重启服务
service nginx restart
或
systemctl restart nginx

5.3 查看 Nginx 进程

[root@c-docker ~]# ps aux | grep nginx
root       12705  0.0  0.0  14052  2104 ?        Ss   16:31   0:00 nginx: master process /usr/sbin/nginx
nginx      12706  0.0  0.0  14440  3824 ?        S    16:31   0:00 nginx: worker process
nginx      12707  0.0  0.0  14440  3952 ?        S    16:31   0:00 nginx: worker process
nginx      12708  0.0  0.0  14440  3952 ?        S    16:31   0:00 nginx: worker process
nginx      12709  0.0  0.0  14440  3660 ?        S    16:31   0:00 nginx: worker process
root       12715  0.0  0.0   6380  1872 pts/0    S+   16:32   0:00 grep --color=auto nginx

5.4 配置防火墙和访问网站

关闭防火墙以确保可以访问:

# 停止 firewalld 服务
systemctl stop firewalld
禁止 firewalld 开机启动
systemctl disable firewalld

查看服务器 IP 地址:

[root@c-docker ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:bb:c5:0b brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname enx000c29bbc50b
    inet 192.168.10.232/24 brd 192.168.10.255 scope global dynamic noprefixroute ens160
       valid_lft 1332sec preferred_lft 1332sec
    inet6 fe80::20c:29ff:febb:c50b/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 26:f5:ba:1c:e6:0c brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

在 Windows 浏览器中输入服务器 IP 地址(如 192.168.10.232)即可访问 Nginx 默认页面。

5.5 Nginx 网站访问问题排查

如果无法访问,可按以下步骤排查:

  1. 检查 Nginx 服务是否启动:查看进程是否存在
  2. 检查防火墙是否关闭:systemctl stop firewalld
  3. 检查 80 端口是否监听:ss -anplut | grep nginx

5.6 修改 Nginx 网站首页

# 进入 Nginx 网站目录
cd /usr/share/nginx/html/
删除默认文件
rm -rf *
安装 vim 编辑器
yum install vim -y
创建自定义首页
vim index.html

将以下 HTML 代码保存到 index.html:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>个人信息卡片</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: "Microsoft Yahei", sans-serif;
        }
        body {
            background-color: #f5f7fa;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
        }
        .card {
            background: #fff;
            width: 420px;
            padding: 30px;
            border-radius: 16px;
            box-shadow: 0 4px 16px rgba(0,0,0,0.1);
        }
        .avatar {
            width: 160px;
            height: 160px;
            border-radius: 12px;
            object-fit: cover;
            display: block;
            margin: 0 auto 25px;
            border: 3px solid #2563eb;
        }
        .info-item {
            font-size: 18px;
            margin: 14px 0;
            color: #333;
        }
        .label {
            font-weight: bold;
            color: #2563eb;
            min-width: 80px;
            display: inline-block;
        }
    </style>
</head>
<body>
    <div class="card">
        <img class="avatar" src="feng.jpg" alt="个人照片">
        <div class="info-item">
            <span class="label">姓名:</span>冯德勇
        </div>
        <div class="info-item">
            <span class="label">电话:</span>18908495097
        </div>
        <div class="info-item">
            <span class="label">公司:</span>三创
        </div>
    </div>
</body>
</html>

5.7 上传图片到网站目录

# 安装 lrzsz 工具(支持 rz 命令上传文件)
yum install lrzsz -y
上传图片(执行后会弹出文件选择框)
rz
查看上传的文件
[root@c-docker html]# pwd
/usr/share/nginx/html
[root@c-docker html]# ls
feng.jpg  index.html

6. 使用 Docker 安装 Nginx

6.1 下载 Nginx 镜像

从华为云镜像仓库下载 Nginx 镜像:

# 下载镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:latest
修改镜像标签为更简洁的名称
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:latest docker.io/nginx:latest

6.2 查看下载的镜像

[root@c-docker html]# docker images
IMAGE                                                             ID             DISK USAGE   CONTENT SIZE   EXTRA
nginx:latest                                                      127262f8c4c7        270MB           71MB
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:latest   127262f8c4c7        270MB           71MB

6.3 启动 Nginx 容器

# 启动容器,将宿主机的 8080 端口映射到容器的 80 端口
docker run -d --name sc-nginx-1 -p 8080:80 nginx:latest
查看运行中的容器
[root@c-docker html]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                     NAMES
09ec2448e0e5   nginx:latest   "/docker-entrypoint.…"   4 seconds ago   Up 3 seconds   0.0.0.0:8080->80/tcp, [::]:8080->80/tcp   sc-nginx-1

参数说明:

  • -d:后台运行
  • --name sc-nginx-1:指定容器名称
  • -p 8080:80:端口映射,宿主机的 8080 端口映射到容器的 80 端口

6.4 访问 Docker 容器中的 Nginx

在浏览器中输入 服务器IP:8080(如 192.168.10.232:8080)即可访问。

6.5 修改容器中的网站内容

# 查看正在运行的容器
[root@c-docker html]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                     NAMES
09ec2448e0e5   nginx:latest   "/docker-entrypoint.…"   6 minutes ago   Up 6 minutes   0.0.0.0:8080->80/tcp, [::]:8080->80/tcp   sc-nginx-1
进入宿主机的 Nginx 网站目录
cd /usr/share/n

更多推荐