LinuxCentOS安装Docker配置docker-compose编排工具超详细
1. 适用场景
本教程适用于需要在CentOS系统上部署容器化应用的开发者和系统管理员。无论是个人开发环境、测试环境还是生产环境,通过Docker和docker-compose的组合,可以实现快速、一致的容器部署和管理。
主要应用场景包括:
- Web应用的多容器部署(如Nginx + PHP + MySQL)
- 微服务架构的应用编排
- 开发环境的快速搭建和复制
- CI/CD流水线中的容器化部署
- 数据库、缓存等中间件的容器化管理
2. 适配系统与环境配置要求
系统要求
- 操作系统:CentOS 7、CentOS 8 Stream、CentOS 9 Stream
- 内核版本:3.10或更高版本
- 存储驱动:推荐使用overlay2存储驱动
- 内存:建议至少2GB RAM
- 磁盘空间:建议至少20GB可用空间
环境准备
在开始安装前,请确保:
- 系统已更新到最新版本
- 具备sudo权限的用户账户
- 网络连接正常,能够访问外部软件仓库
- 已关闭或配置好防火墙规则
3. 资源使用教程
步骤一:安装Docker Engine
1. 卸载旧版本Docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装依赖包
sudo yum install -y yum-utils
3. 添加Docker官方仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4. 安装Docker Engine
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
5. 启动Docker服务
sudo systemctl enable --now docker
6. 验证安装
sudo docker run hello-world
步骤二:配置非root用户权限
1. 创建docker用户组(如果不存在)
sudo groupadd docker
2. 将当前用户添加到docker组
sudo usermod -aG docker $USER
3. 重新登录或刷新组权限
newgrp docker
步骤三:安装docker-compose插件
方法一:通过包管理器安装(推荐)
sudo yum install docker-compose-plugin
方法二:手动安装
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
验证docker-compose安装
docker compose version
步骤四:创建第一个docker-compose应用
1. 创建项目目录
mkdir myapp && cd myapp
2. 创建docker-compose.yml文件
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: myapp
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
3. 启动应用
docker compose up -d
4. 查看运行状态
docker compose ps
4. 常见问题及解决办法
问题一:权限拒绝错误
错误信息:Got permission denied while trying to connect to the Docker daemon socket
解决方案:
# 确保用户属于docker组
sudo usermod -aG docker $USER
# 重新登录或执行
newgrp docker
问题二:Docker服务无法启动
错误信息:Job for docker.service failed
解决方案:
# 查看详细错误信息
sudo systemctl status docker.service
sudo journalctl -xe
# 常见解决方法
sudo systemctl daemon-reload
sudo systemctl restart docker
问题三:存储驱动问题
错误信息:storage-driver=overlay2 is not supported
解决方案:
# 检查当前存储驱动
docker info | grep Storage
# 修改存储驱动
sudo vi /etc/docker/daemon.json
# 添加内容:
{
"storage-driver": "overlay2"
}
sudo systemctl restart docker
问题四:端口冲突
错误信息:port is already allocated
解决方案:
# 查看占用端口的进程
sudo netstat -tulpn | grep :80
# 停止占用进程或修改docker-compose中的端口映射
问题五:镜像拉取失败
错误信息:Error response from daemon: Get https://registry-1.docker.io/v2/
解决方案:
# 配置镜像下载优化
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://your-mirror.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
问题六:磁盘空间不足
错误信息:no space left on device
解决方案:
# 清理无用镜像和容器
docker system prune -a
docker volume prune
# 查看磁盘使用情况
docker system df
问题七:网络连接问题
错误信息:network not found
解决方案:
# 创建自定义网络
docker network create my-network
# 在docker-compose中使用自定义网络
networks:
my-network:
external: true
通过本教程,您应该能够成功在CentOS系统上安装和配置Docker及docker-compose,并解决常见的安装和使用问题。这些工具的组合将为您的容器化应用部署提供强大的编排和管理能力。