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"]
}
操作步骤:
- 创建配置文件:
sudo mkdir -p /etc/docker sudo nano /etc/docker/daemon.json
- 重启 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 场景中的深度价值。记住,实践是掌握技术的最佳途径,现在就开始您的容器化之旅吧!