Linux下Docker安装超详细教程(以CentOS为例)

前言

Docker 已成为现代应用开发和部署的标配工具。本教程将手把手教你 在 CentOS 系统上安装 Docker,涵盖从环境准备到验证安装的全流程,并解决常见问题。无论你是运维工程师还是开发者,均可快速上手。


一、环境要求

  1. 操作系统

    • CentOS 7 或更高版本(64 位)
    • 推荐内核版本 ≥ 3.10(检查命令:uname -r
  2. 依赖工具

    • yum 包管理器(默认已安装)
    • curlwget(用于下载文件)

二、安装步骤

1. 卸载旧版本 Docker(如有)

bash 复制代码
sudo yum remove -y docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2. 安装依赖工具

bash 复制代码
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3. 添加 Docker 官方仓库

bash 复制代码
# 使用官方源(国际网络)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 或使用阿里云镜像加速(国内推荐)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4. 安装 Docker 引擎

bash 复制代码
# 安装最新稳定版
sudo yum install -y docker-ce docker-ce-cli containerd.io

# 或安装指定版本(例如 20.10.17)
sudo yum install -y docker-ce-20.10.17 docker-ce-cli-20.10.17 containerd.io

5. 启动 Docker 并设置开机自启

bash 复制代码
sudo systemctl start docker
sudo systemctl enable docker

三、验证安装

1. 检查 Docker 版本

bash 复制代码
docker --version
# 输出示例:Docker version 20.10.17, build 100c701

2. 运行测试容器

bash 复制代码
sudo docker run hello-world

若看到 Hello from Docker! 提示,说明安装成功。


四、配置镜像加速器(国内必做)

1. 创建配置文件

bash 复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
        "https://docker.registry.cyou",
        "https://docker-cf.registry.cyou",
        "https://dockercf.jsdelivr.fyi",
        "https://docker.jsdelivr.fyi",
        "https://dockertest.jsdelivr.fyi",
        "https://mirror.aliyuncs.com",
        "https://dockerproxy.com",
        "https://mirror.baidubce.com",
        "https://docker.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://docker.mirrors.sjtug.sjtu.edu.cn",
        "https://docker.mirrors.ustc.edu.cn",
        "https://mirror.iscas.ac.cn",
        "https://docker.rainbond.cc"
  ]
}
EOF

2. 重启 Docker 生效

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

五、管理 Docker 权限

1. 允许非 root 用户操作 Docker

bash 复制代码
# 将当前用户加入 docker 组
sudo usermod -aG docker $USER

# 退出终端重新登录生效

2. 验证非 root 权限

bash 复制代码
docker ps
# 若无权限错误,则配置成功

六、常见问题解决

1. 网络问题导致无法拉取镜像

症状
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled

解决方案

  • 检查镜像加速器配置

  • 临时关闭防火墙:

    bash 复制代码
    sudo systemctl stop firewalld

2. 容器启动报权限错误

症状
Permission denied while trying to connect to the Docker daemon socket

解决方案

  • 确保用户已加入 docker

  • 重启 Docker 服务:

    bash 复制代码
    sudo systemctl restart docker

3. yum 安装时报仓库错误

症状
Cannot find a valid baseurl for repo: docker-ce-stable

解决方案

  • 检查仓库配置路径

  • 更换为阿里云仓库:

    bash 复制代码
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

七、附录:常用 Docker 命令速查

命令 作用
docker ps 查看运行中的容器
docker images 列出本地镜像
docker rmi <镜像ID> 删除镜像
docker stop <容器ID> 停止容器
docker logs <容器ID> 查看容器日志

八、总结

通过本教程,你已经完成了:

✅ Docker 环境准备

✅ 镜像加速器配置

✅ 权限管理优化

✅ 常见问题排查

后续建议

  1. 学习 Dockerfile 编写自定义镜像
  2. 掌握 docker-compose 多容器编排
  3. 探索 Kubernetes 容器集群管理
相关推荐
巨可爱熊16 分钟前
高并发内存池(定长内存池基础)
linux·运维·服务器·c++·算法
yangang1852 小时前
linuxbash原理
linux·运维·服务器
小小毛桃2 小时前
在Ubuntu系统中运行Windows程序
linux·windows·ubuntu
码农新猿类3 小时前
服务器本地搭建
linux·网络·c++
小度爱学习3 小时前
linux中的执行命令格式及命令帮助
linux·运维·chrome
神奇侠20243 小时前
快速入手K8s+Docker+KubeSphere+DevOps
docker·kubernetes·devops
良许Linux3 小时前
嵌入式算吃青春饭么?
linux
良许Linux4 小时前
马上要毕业去工作了,做嵌入式软件开发工程师,但是完全不会编程怎么办?
linux
良许Linux4 小时前
学stm32,有什么学习方法?
linux
良许Linux4 小时前
为啥有好多人说 Arduino 是玩具?
linux