CentOS Docker 安装(超详细)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观

前言:为什么需要在 CentOS 上安装 Docker?

在云计算和容器化技术蓬勃发展的今天,Docker 已经成为开发者构建、打包和部署应用的必备工具。CentOS 作为企业级 Linux 系统的代表,因其稳定性和开源特性,常被用作服务器环境。将 Docker 安装在 CentOS 上,就像为您的服务器装上一个灵活的“集装箱管理系统”,能够轻松实现应用的快速部署与资源隔离。本文将从零开始,分步骤指导您完成 CentOS 环境下 Docker 的安装与配置,并通过实际案例帮助您理解其核心功能。


安装 Docker 的准备工作

1. 系统环境要求

安装 Docker 需要满足以下条件:

  • 确保您的 CentOS 系统版本为 7.6 或更高版本(推荐使用 CentOS 8 或 CentOS Stream)
  • 系统需支持 Linux 内核版本 3.10 或更高
  • 关闭防火墙或开放 Docker 默认端口(如 2375)

比喻说明
将 Docker 比作一艘巨大的货轮,而 CentOS 是它的停泊港口。只有当港口的基础设施(内核版本、系统版本)符合要求时,货轮才能安全靠岸并正常运作。

2. 更新系统依赖

在终端执行以下命令,确保系统软件包为最新状态:

sudo yum clean all
sudo yum makecache
sudo yum update -y

正式安装 Docker Engine

步骤 1:添加 Docker 官方仓库

Docker 官方提供了 Yum 仓库,通过以下命令配置:

sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
EOF

知识点解析
tee 命令用于创建并写入文件内容,<<-'EOF' 是 Shell 中的“Here Document”语法,允许将多行文本直接输入文件。此处配置的仓库地址确保了 Docker 软件包的来源可靠。

步骤 2:安装 Docker CE(社区版)

执行安装命令:

sudo yum install docker-ce docker-ce-cli containerd.io -y
  • docker-ce:Docker 社区版核心服务
  • docker-ce-cli:命令行工具
  • containerd.io:容器运行时引擎

步骤 3:启动 Docker 服务并设置开机自启

sudo systemctl start docker
sudo systemctl enable docker

步骤 4:验证安装

运行以下命令,若输出 Docker 版本信息则安装成功:

docker --version

配置 Docker 环境优化

1. 配置国内镜像源加速

默认情况下,Docker 从海外仓库拉取镜像可能较慢。通过修改 /etc/docker/daemon.json 文件,添加阿里云镜像源:

{
  "registry-mirrors": ["https://<你的阿里云镜像站>.mirror.aliyuncs.com"]
}

操作步骤

  1. 创建配置文件:
    sudo mkdir -p /etc/docker
    sudo nano /etc/docker/daemon.json
    
  2. 重启 Docker 服务:
    sudo systemctl restart docker
    

2. 非 root 用户权限配置

默认 Docker 命令需要 root 权限,可将用户加入 docker 组以避免频繁使用 sudo

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

实战演练:运行第一个 Docker 容器

案例 1:部署 Nginx Web 服务器

docker pull nginx:latest

docker run -d -p 80:80 --name my-nginx nginx

参数解释

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

访问浏览器输入服务器 IP 地址,即可看到 Nginx 默认页面。

案例 2:自定义镜像构建

创建 Dockerfile 文件:

FROM python:3.9-slim

WORKDIR /app

COPY . .

RUN pip install -r requirements.txt

EXPOSE 5000

CMD ["python", "app.py"]

构建并运行:

docker build -t my-python-app .
docker run -p 5000:5000 my-python-app

高级配置与优化技巧

1. Docker 守护进程配置

通过修改 /etc/docker/daemon.json 可调整 Docker 行为,例如限制内存使用:

{
  "default-ulimits": {
    "nofile": {
      "Name": "nofile",
      "Soft": 1024,
      "Hard": 2048
    }
  },
  "live-restore": true
}

2. 镜像清理与空间管理

定期清理无用镜像和容器:

docker system prune -a

docker image prune -a

3. 使用 Docker Compose 管理多容器应用

创建 docker-compose.yml 文件:

version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"

运行:

docker-compose up -d

常见问题与解决方案

问题 1:权限不足(Permission Denied)

现象:运行 docker 命令时提示 Got permission denied
解决:重新加载用户组配置:

newgrp docker

问题 2:端口被占用

现象:启动容器时提示 port is already allocated
解决:检查占用端口并终止进程:

sudo netstat -tulnp | grep :<端口号>
sudo kill -9 <进程ID>

问题 3:镜像下载速度慢

解决:参考上文配置国内镜像源,或手动下载镜像后导入:

docker load < my-image.tar

结论:从安装到实践的完整旅程

通过本文,您已经掌握了在 CentOS 系统上安装 Docker 的完整流程,并通过实际案例理解了容器化部署的核心逻辑。Docker 的强大之处不仅在于其轻量级特性,更在于它为开发者提供的标准化交付模式——无论是在本地开发环境还是云端服务器,都能确保“一次构建,到处运行”。建议读者通过构建自己的微服务应用或 CI/CD 流水线,进一步探索 Docker 在 DevOps 场景中的深度价值。记住,实践是掌握技术的最佳途径,现在就开始您的容器化之旅吧!

最新发布