安装Docker的前提虚拟机上已经安装了Linux系统。
以 CentOS 系统为例,重新梳理 Docker 的安装步骤,我会按照 CentOS 官方推荐的标准流程来讲解,确保步骤清晰、可执行,适配 CentOS 7/8/9 版本。
一、CentOS 系统安装 Docker 前置说明
- 支持的版本:CentOS 7 (64-bit)、CentOS 8 (64-bit)、CentOS 9 (64-bit)
- 核心要求:系统需启用
cgroupfs或systemd,且内核版本 ≥ 3.10
二、Docker具体安装步骤
1. 卸载旧版本(可选但推荐)
如果系统中已安装 Docker 旧版本(docker、docker-common、docker-selinux、docker-engine),先清理:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
注:此命令只会卸载 Docker 程序,不会删除镜像、容器、卷等数据,若需清理数据可手动删除
/var/lib/docker目录。
2. 设置 Docker 官方仓库
首先安装依赖包,用于配置 HTTPS 仓库:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
然后添加 Docker 官方 yum 仓库(推荐):
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
若官方仓库下载慢,可替换为国内镜像源(如阿里云):
sudo yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 安装 Docker 引擎
-
安装最新稳定版(推荐新手):
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
若需安装指定版本(可选):① 先查看可用版本:
yum list docker-ce --showduplicates | sort -r② 安装指定版本(替换
<VERSION_STRING>为具体版本,如26.1.0-1.el7):sudo yum install -y docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
4. 启动并设置开机自启 Docker
# 启动 Docker 服务
sudo systemctl start docker
# 设置开机自启
sudo systemctl enable docker
# 查看 Docker 运行状态(验证是否启动成功)
sudo systemctl status docker
5. 配置非 root 用户免 sudo 使用 Docker(可选但推荐)
默认只有 root 用户能运行 Docker 命令,配置普通用户免 sudo:
# 将当前用户加入 docker 组
sudo usermod -aG docker $USER
# 立即生效(无需注销登录)
newgrp docker
6. 验证安装是否成功
运行官方测试容器,若能正常输出信息则安装完成:
docker run hello-world
成功输出示例:包含 "Hello from Docker!" 字样,说明 Docker 已能正常拉取镜像、运行容器。
三、CentOS 安装常见问题解决
-
CentOS 8 报错
container-selinux依赖缺失 :执行以下命令安装依赖:sudo dnf install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/container-selinux-2.119.2-1.911c772.el7.noarch.rpm -
防火墙 / SELinux 影响容器网络 :若容器无法联网,可临时关闭 SELinux(仅测试用):
sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
四、配置国内镜像源(优化下载速度)
编辑 Docker 配置文件,添加阿里云 / 腾讯云镜像源:
# 创建配置目录(若不存在)
sudo mkdir -p /etc/docker
# 写入镜像源配置
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com", "https://hub-mirror.c.163.com"]
}
EOF
# 重启 Docker 使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker
总结:
- CentOS 安装 Docker 核心步骤:清理旧版本 → 配置仓库 → 安装引擎 → 启动并设自启 → 验证。
- 非 root 用户需加入
docker组才能免 sudo 使用,国内环境建议配置镜像源提升下载速度。
五、常用命令
比较常见的命令有:
| 命令 | 说明 | 文档地址 |
|---|---|---|
| docker pull | 拉取镜像 | docker pull |
| docker push | 推送镜像到DockerRegistry | docker push |
| docker images | 查看本地镜像 | docker images |
| docker rmi | 删除本地镜像 | docker rmi |
| docker run | 创建并运行容器(不能重复创建) | docker run |
| docker stop | 停止指定容器 | docker stop |
| docker start | 启动指定容器 | docker start |
| docker restart | 重新启动容器 | docker restart |
| docker rm | 删除指定容器 | docs.docker.com |
| docker ps | 查看容器 | docker ps |
| docker logs | 查看容器运行日志 | docker logs |
| docker exec | 进入容器 | docker exec |
| docker save | 保存镜像到本地压缩文件 | docker save |
| docker load | 加载本地压缩文件到镜像 | docker load |
| docker inspect | 查看容器详细信息 | docker inspect |
用一副图来表示这些命令的关系:

六、安装Mysql
使用Docker安装,仅仅需要一步即可
docker run -d \
--name mysql \
-p 3307:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
mysql:8
解读:
docker run -d:创建并运行一个容器,-d则是让容器以后台进程运行
--name mysql: 给容器起个名字叫mysql,你可以叫别的
-p 3307:3306: 设置端口映射。
容器是隔离环境 ,外界不可访问。但是可以将宿主机端口映射容器内到端口,当访问宿主机指定端口时,就是在访问容器内的端口了。
容器内端口往往是由容器内的进程决定,例如MySQL进程默认端口是3306,因此容器内端口一定是3306;而宿主机端口则可以任意指定,一般与容器内保持一致。
格式:
-p 宿主机端口:容器内端口,示例中就是将宿主机的3307映射到容器内的3306端口
-``e`` TZ=Asia/Shanghai: 配置容器内进程运行时的一些参数
格式:
-e KEY=VALUE,KEY和VALUE都由容器内进程决定案例中,
TZ=Asia/Shanghai是设置时区;MYSQL_ROOT_PASSWORD=123是设置MySQL默认密码
mysql:8: 设置镜像名称,Docker会根据这个名字搜索并下载镜像
格式:
REPOSITORY:TAG,例如mysql:8.0,其中REPOSITORY可以理解为镜像名,TAG是版本号在未指定
TAG的情况下,默认是最新版本,也就是mysql:latest
七、安装Redis
-
拉取并启动 Redis 容器
docker run -d
--name redis \ # 容器命名为 redis,和你的 mysql 容器命名逻辑一致
-p 6380:6379 \ # 端口映射:主机 6380 端口 → 容器 6379(Redis 默认端口)
-e TZ=Asia/Shanghai \ # 设置时区为上海,和 MySQL 保持一致
-e REDIS_PASSWORD=123456 \ # 设置 Redis 密码(必填,否则无密码访问有风险)
redis:7 \ # 使用 redis:7 镜像(和你 mysql:8 版本格式一致)
--requirepass 123456 # Redis 启动参数:强制要求密码认证(和上面的密码保持一致) -
验证 Redis 容器是否启动成功
#查看容器运行状态
docker ps | grep redis
进入 Redis 容器测试连接 是一条 Docker 命令,用于在运行中的 Redis 容器内执行 redis-cli(Redis 命令行客户端)
docker exec -it redis redis-cli
执行后输入密码认证(替换为你设置的密码)
127.0.0.1:6379> AUTH 123456
返回 OK 表示认证成功,可正常使用
127.0.0.1:6379> SET test "hello redis"
127.0.0.1:6379> GET test # 应返回 "hello redis"
#windows连接redis
格式:redis-cli -h 服务器IP -p 映射端口 -a 密码
redis-cli -h 192.168.100.128 -p 6380 -a 123456