当前位置: 首页 > article >正文

Windows下Docker Compose使用教程

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。你可以使用 docker-compose.yml 文件来配置应用的服务,然后用单个命令启动所有服务。

Windows 上 Docker Compose 使用教程

1. 安装 Docker Desktop

首先,确保已经安装了 Docker Desktop for Windows。Docker Compose 已经集成在 Docker Desktop 中,因此只需要安装 Docker Desktop,就会自动包含 Docker Compose。

可以在 Docker 官方网站 下载并安装 Docker Desktop。

2. 验证 Docker 和 Docker Compose 安装

安装完成后,打开 PowerShell 或者 CMD,运行以下命令来验证 Docker 和 Docker Compose 是否安装成功:

docker --version
docker-compose --version

如果安装正确,你应该能看到 Docker 和 Docker Compose 的版本信息。

3. 创建项目文件夹

假设你正在创建一个多容器应用,比如一个简单的 Web 应用,包含一个前端和一个后端。你可以在 Windows 上创建一个文件夹来保存你的 Docker Compose 配置文件。

mkdir my-docker-compose-project
cd my-docker-compose-project
4. 编写 docker-compose.yml 文件

在项目文件夹中创建一个 docker-compose.yml 文件。docker-compose.yml 文件用于定义所有服务的配置。以下是一个简单的示例:

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
  db:
    image: mysql:8
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: mydb
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

docker-compose.yml 解析:

  • version: 定义 Docker Compose 文件的版本。'3' 是目前较常用的版本。
  • services: 定义应用中的所有服务,每个服务通常对应一个容器。
    • web: 这是 Web 服务,使用官方的 nginx 镜像。
      • image: 使用的镜像。
      • ports: 将容器的 80 端口映射到宿主机的 8080 端口。
    • db: 这是数据库服务,使用官方的 mysql 镜像。
      • environment: 定义环境变量,用于设置 MySQL 的根密码和数据库。
      • volumes: 持久化 MySQL 数据库数据,将数据存储在 db_data 卷中。
  • volumes: 用于定义 Docker 卷,db_data 卷用于存储 MySQL 数据。
5. 运行 Docker Compose

docker-compose.yml 文件所在的目录下,打开命令行(PowerShell 或 CMD),运行以下命令来启动 Docker Compose:

docker-compose up

这个命令会根据 docker-compose.yml 中的定义,启动所有的服务。在初次启动时,Docker Compose 会拉取相关镜像并启动容器。

  • up 命令会启动所有定义的服务,默认情况下会在前台运行。
  • 如果希望在后台运行容器,可以加上 -d(detached)参数:
docker-compose up -d
6. 查看服务状态

你可以运行以下命令查看当前运行的服务和容器:

docker-compose ps

这将列出所有由 Docker Compose 启动的容器,包括容器 ID、名称、状态等。

7. 访问服务
  • 你可以通过浏览器访问 http://localhost:8080 来查看 Nginx Web 服务的页面。
  • 数据库服务运行在 mysql 容器中,端口默认为 3306。如果你想在 Windows 上通过工具(例如 Navicat)访问数据库,可以使用以下连接信息:
    • 主机: localhost
    • 用户名: root
    • 密码: example
    • 数据库: mydb
    • 端口: 3306
8. 查看容器日志

你可以查看容器的日志以调试服务:

docker-compose logs

如果只想查看某个服务的日志,可以指定服务名称:

docker-compose logs web
9. 停止和移除容器

当你完成工作后,可以使用以下命令停止所有运行中的容器:

docker-compose down

这个命令会停止并删除所有由 docker-compose.yml 启动的容器。注意,使用 down 时会删除所有容器,但不会删除数据卷。如果你想删除数据卷,可以使用:

docker-compose down -v
10. 修改配置后重启服务

如果你修改了 docker-compose.yml 文件,可以通过以下命令重新启动服务:

docker-compose up -d
11. 查看 Docker Compose 的其他命令
  • 构建镜像:如果需要构建自定义镜像,可以使用以下命令:

    docker-compose build
    
  • 查看 Docker Compose 版本

    docker-compose --version
    
12. Docker Compose 进阶使用
  • 服务依赖关系:如果服务之间有依赖关系(比如 Web 服务需要等待数据库服务启动),可以使用 depends_on 属性来指定启动顺序。

    services:
      web:
        image: nginx
        depends_on:
          - db
      db:
        image: mysql:8
        environment:
          MYSQL_ROOT_PASSWORD: example
    
  • 多环境配置:Docker Compose 支持多个配置文件,你可以为不同的环境(例如开发、测试、生产)使用不同的配置文件。在运行时通过 -f 参数指定多个配置文件:

    docker-compose -f docker-compose.yml -f docker-compose.prod.yml up
    

总结:

  • 安装 Docker Desktop:Docker Compose 是 Docker Desktop 的一部分,无需单独安装。
  • 创建 docker-compose.yml 文件:定义服务、卷和其他配置。
  • 使用 docker-compose up 启动服务:启动所有服务并查看日志。
  • 停止和删除服务:使用 docker-compose down 停止并删除容器。

希望这个教程能帮你入门 Docker Compose,管理和部署多容器应用。


http://www.kler.cn/a/555203.html

相关文章:

  • 游戏引擎学习第114天
  • java毕业设计之医院门诊挂号系统(源码+文档)
  • Redis-03高级篇中-多级缓存:
  • RK3588配置成为路由器
  • 网络初始2:网络编程--基于UDP和TCP实现回显器
  • Python中常见库 PyTorch和Pydantic 讲解
  • [Linux]——进程控制(中)
  • SpringSecurity基于配置方法控制访问权限:MVC匹配器、Ant匹配器
  • 【git】提交修改、回撤、回滚、Tag 操作讲解,与reset (--soft、--mixed、--hard) 的区别
  • ArkTS与ArkUI深度解析:鸿蒙应用开发的未来之路
  • Aseprite绘画流程案例(1)——画相机图标
  • Linux-C/C++《C++/1、C++基础》(C++语言特性、面向对象等)
  • 哈希表模拟封装unordered_map和unordered_set
  • 嵌入式 Linux 设备树中的标准属性详解
  • VIE(可变利益实体)架构通俗解析 —— 以阿里巴巴为例(中英双语)
  • 51单片机学习——静态数码管显示
  • 深度学习模型应用场景全解析:CNN、Transformer、BERT、RNN与GAN
  • 在大语言模型(LLM)中调用(Function Calling) 自定义的结构化函数
  • oppo,汤臣倍健,康冠科技25届春招内推
  • Android init阶段loop回环设备的使用