Linux上安装Docker

安装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 安装常见问题解决

  1. 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
  2. 防火墙 / 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

总结:

  1. CentOS 安装 Docker 核心步骤:清理旧版本 → 配置仓库 → 安装引擎 → 启动并设自启 → 验证。
  2. 非 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

  1. 拉取并启动 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 启动参数:强制要求密码认证(和上面的密码保持一致)

  2. 验证 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

相关推荐
额额额对了14 分钟前
Linux 驱动开发:基于 platform 总线 + misc 设备的 DS18B20 单总线温度驱动
linux·c语言·开发语言·驱动开发·嵌入式硬件
木雷坞26 分钟前
Docker Compose部署Metabase:应用库隔离与日期筛选看板
运维·docker·容器
怒放的生命199136 分钟前
前端项目 Docker 打包实操指南
前端·docker·容器
tedcloud12338 分钟前
Docker Compose 部署 Immich:手机照片自动备份与常见故障排查
运维·前端·docker·容器·智能手机·开源·流程图
古城小栈42 分钟前
Docker Compose 云原生的底座
docker·云原生·容器
Android系统攻城狮1 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_activate调用流程与实战(七十九)
linux·运维·服务器·gstreamer音视频·gstreamer音视频进阶
卜锦元1 小时前
Docker Compose 部署 Nginx 1.30.6 完整指南
nginx·docker·容器
Escalating_xu1 小时前
【Linux 网络编程】网络命令加餐:用 ping、netstat、watch 和 pidof 排查服务问题
linux·运维·网络
mounter6251 小时前
现代 Linux 内核在异构内存与硬件演进下的架构变革:压缩 RAM、CXL 与分布式内存
linux·linux kernel·kernel
.Bryce.2 小时前
三协议合一实战:用MCP+A2A+ANP搭建一个智能研究助手
网络·redis·agent·codex·mcp·a2a·anp