首页
/ LinuxCentOS安装Docker配置docker-compose编排工具超详细

LinuxCentOS安装Docker配置docker-compose编排工具超详细

2025-08-21 01:38:23作者:鲍丁臣Ursa

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可用空间

环境准备

在开始安装前,请确保:

  1. 系统已更新到最新版本
  2. 具备sudo权限的用户账户
  3. 网络连接正常,能够访问外部软件仓库
  4. 已关闭或配置好防火墙规则

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,并解决常见的安装和使用问题。这些工具的组合将为您的容器化应用部署提供强大的编排和管理能力。