底层视角

洞察事物的本质,启迪人生智慧

安装Docker 和 Docker Compose一键部署多容器应用

1. 安装 Docker

Docker Compose 依赖 Docker 引擎,因此需先安装 Docker。

Linux 系统(Ubuntu/CentOS 等)

# 卸载旧版本(如有)
sudo apt-get remove docker docker-engine docker.io containerd runc  # Ubuntu/Debian
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine  # CentOS/RedHat

# 安装最新版本 Docker
curl -fsSL https://get.docker.com | sudo sh

# 启动 Docker 服务并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

# 验证安装
docker --version  # 输出示例:Docker version 24.0.7, build afdd53b
# 1. 更新仓库并列出可用版本
sudo apt update
apt-cache madison docker-ce

# 2. 安装指定版本(例如 20.10.23)
sudo apt-get install docker-ce=5:20.10.23~3-0~ubuntu-jammy docker-ce-cli=5:20.10.23~3-0~ubuntu-jammy containerd.io

# 3. 验证版本
docker --version

在基于 Debian 的系统(如用户操作环境)中,通过官方脚本安装后:

  • 程序执行文件会安装到系统二进制目录(如 /usr/bin/ 下,包含 docker 等命令)。
  • 数据存储目录默认位于 /var/lib/docker,用于存放镜像、容器数据等核心内容。

这是 Docker 在 Linux 系统(尤其是 Debian/Ubuntu 系)的标准安装路径。

Windows/macOS

  • 下载并安装 Docker Desktop,安装完成后启动 Docker 服务。

2. 安装 Docker Compose

Linux 系统

# 下载最新稳定版(以 v2.23.3 为例)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose --version  # 输出示例:Docker Compose version v2.23.3

Windows/macOS

  • Docker Desktop 已默认包含 Docker Compose,无需额外安装。

3. 检查版本兼容性

  • Docker Compose 版本:建议使用 v2.0+(支持 docker-compose.yml v3 语法)。
  • Docker 版本:建议使用 Docker 20.10+。
  • 通过以下命令检查版本:

    docker --version
    docker-compose --version

4. 准备 docker-compose.yml 文件

  • 文件结构:在项目根目录创建 docker-compose.yml,定义服务、网络、卷等资源。
  • 示例模板

    version: '3.8'  # 指定 Compose 文件版本
    
    services:
      web:
        image: nginx:latest
        ports:
          - "80:80"
    
      db:
        image: postgres:15
        environment:
          POSTGRES_PASSWORD: example

5. 权限配置(Linux 系统)

  • 避免每次使用 docker 命令时加 sudo,将当前用户加入 docker 组:

    sudo usermod -aG docker $USER  # $USER 替换为你的用户名
    newgrp docker  # 刷新用户组

6. 目录与文件权限

  • 如果涉及挂载本地目录(如日志、数据持久化),确保宿主机目录存在且权限正确:

    mkdir -p ./data/postgres
    chmod 755 ./data/postgres  # 根据需求调整权限

7. 网络与防火墙

  • 开放端口:确保 Docker 使用的端口未被占用或防火墙阻止(如 80、3306、8848 等)。

    sudo ufw allow 80/tcp          # Ubuntu/Debian
    sudo firewall-cmd --add-port=80/tcp --permanent && firewall-cmd --reload  # CentOS

8. 验证 Docker 环境

# 运行测试容器
docker run hello-world

# 预期输出:Hello from Docker! 表示环境正常

9. 学习基础命令

掌握 Docker Compose 常用命令:

docker-compose up -d     # 启动服务(后台模式)
docker-compose down      # 停止并删除容器、网络
docker-compose logs      # 查看日志
docker-compose ps        # 查看运行状态
docker-compose build     # 重新构建镜像

10. 常见问题预判

Q1: docker-compose 命令报权限错误

  • 解决:确保用户已加入 docker 组,或使用 sudo docker-compose

Q2: YAML 文件语法错误

  • 解决:使用在线工具(如 YAML Lint)验证文件格式。

Q3: 端口冲突

  • 解决:通过 docker ps 查看占用端口的容器,停止冲突服务或修改端口映射。

总结

完成上述准备工作后,即可通过 docker-compose.yml 一键部署多容器应用,大幅提升开发和运维效率。

本原创文章未经允许不得转载 | 当前页面:底层视角 » 安装Docker 和 Docker Compose一键部署多容器应用

评论