【Docker】Docker Compose

小破孩
2025-04-18 / 0 评论 / 18 阅读 / 正在检测是否收录...

什么是 Docker Compose

Docker Compose 是 Docker 官方提供的一个工具,它允许你使用 YAML 文件来定义和管理多个 Docker 容器的应用。通过一个单独的 docker-compose.yml 文件,你可以定义应用的服务、网络和卷等配置,然后使用一条命令就能轻松地部署和管理整个应用栈。这大大简化了多容器应用的部署和管理过程,提高了开发和运维效率。

安装 Docker Compose

  • Linux 系统:可以通过以下命令下载并安装 Docker Compose:

    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
  • macOS 和 Windows 系统:在安装 Docker Desktop 时,Docker Compose 会自动安装。

基本概念

服务(Services)

服务是定义在 docker-compose.yml 文件中的一个或多个容器的集合,每个服务都有自己的配置,如使用的镜像、端口映射、环境变量等。例如,一个 Web 应用可能包含一个 Web 服务器服务和一个数据库服务。

网络(Networks)

网络用于连接不同的服务,使得它们之间可以相互通信。Docker Compose 默认会创建一个网络,所有的服务都会连接到这个网络中。

卷(Volumes)

卷用于持久化存储容器中的数据,防止数据在容器销毁时丢失。你可以在 docker-compose.yml 文件中定义卷,并将其挂载到容器的指定目录。

编写 docker-compose.yml 文件

以下是一个简单的 docker-compose.yml 文件示例,用于部署一个包含 Web 服务器和数据库的应用:

这个示例中定义了两个服务:

  • web 服务:使用 nginx 镜像,将容器的 80 端口映射到宿主机的 80 端口,并依赖于 db 服务。
  • db 服务:使用 mysql:5.7 镜像,设置了 MySQL 的 root 密码和数据库名,并将数据卷 db-data 挂载到容器的 /var/lib/mysql 目录。

使用 Docker Compose 命令

启动应用

在包含 docker-compose.yml 文件的目录下,执行以下命令启动应用:

docker-compose up -d

-d 参数表示以守护进程模式运行容器,即容器在后台运行。

停止应用

执行以下命令停止并删除所有由 Docker Compose 创建的容器、网络和卷:

docker-compose down

查看服务状态

使用以下命令查看应用中各个服务的状态:

docker-compose ps

查看服务日志

要查看某个服务的日志,可以使用以下命令:

docker-compose logs web

这里的 web 是服务的名称,你可以根据实际情况替换为其他服务名。

总结

Docker Compose 是一个非常实用的工具,它可以帮助你更方便地管理多容器应用。通过编写 docker-compose.yml 文件,你可以定义应用的各个组件及其配置,然后使用简单的命令就能完成应用的部署、启动、停止等操作。

0

评论 (0)

取消