📜  docker-compose (1)

📅  最后修改于: 2023-12-03 15:00:30.215000             🧑  作者: Mango

Docker Compose

Docker Compose是一个用于定义和运行多个Docker容器应用的工具,它使我们可以使用简单的YAML文件来描述应用的各个部分(如服务,网络和卷)以及它们之间的联系,并且可以一键启动、停止和重新构建整个应用程序。

为什么要使用Docker Compose

在开发和部署复杂的应用程序时,可能需要运行多个相关的服务并将它们链接在一起。而且,由于每个服务都具有其独特的要求和配置,直接使用Docker命令行工具来管理多个容器会非常困难和枯燥。

因此,使用Docker Compose可以轻松管理这些相关的服务,定义它们之间的联系并一键启动多个容器。

Docker Compose的优点
  • 简单易用:只需一个YAML文件即可定义应用的不同部分以及它们之间的联系,而无需编写大量的Docker命令。
  • 快速部署:一键启动、停止和重新构建整个应用程序,大大减少了手动部署的复杂性。
  • 可移植性:使用Docker Compose定义的应用程序可以在不同的主机上运行,而不必担心环境差异导致的配置问题。
  • 易于维护:通过Docker Compose可以轻松地管理和更新应用程序的不同组件和版本。
Docker Compose的使用
安装Docker Compose

在开始使用Docker Compose之前,我们需要验证是否已经安装了Docker和Docker Compose。如果未安装,请根据官方文档进行安装。

编写docker-compose.yml文件

Docker Compose配置文件的名称必须为docker-compose.yml,并且必须放置在应用程序的根目录中。

以下是一个简单的例子,其中我们定义了一个WordPress应用程序,包括一个MySQL数据库和一个Apache Web服务器容器:

version: '3'
services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data:

该配置文件定义了两个服务:dbwordpressdb服务使用了mysql:5.7镜像,用于存储WordPress的数据,而wordpress服务使用了latest版本的WordPress镜像,用于创建Web服务器。

此外,wordpress服务声明了所需的环境变量和端口映射,以确保WordPress应用程序可以正确启动。

启动应用程序

在编写完docker-compose.yml文件后,我们可以使用以下命令来启动应用程序:

docker-compose up

这将开始构建并启动应用程序中定义的所有容器。

如果您想在后台运行容器,请使用以下命令:

docker-compose up -d
查看已运行的容器和服务

一旦应用程序启动,您可以使用以下命令查看已运行的容器和服务:

docker-compose ps

这将显示当前正在运行的所有容器(包括它们的ID、名称和状态)。

停止应用程序

当您不再需要应用程序时,可以使用以下命令停止并删除已运行的容器:

docker-compose down

这将停止应用程序中定义的所有容器,并删除它们的容器、网络和卷。