Docker Compose 简介

Docker Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YAML 文件来配置应用程序需要的所有服务,然后,使用一个命令,就可以从 YAML 文件配置中创建并启动所有服务。

Compose 使用的三个步骤:

  1. 使用 Dockerfile 定义应用程序的环境。
  2. 使用 docker-compose.yml 文件定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  3. 执行 docker-compose up 命令来启动并运行整个应用程序。

docker-compose.yml 的配置示例

docker-compose.yml 配置示例,用于运行一个简单的 web 应用程序和一个 MySQL 数据库:

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
    depends_on:
      - db

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: exampledb
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:
  1. 版本

    version: '3.8'
    • 这是 Docker Compose 文件的版本号。
  2. 服务

    • web 服务使用 nginx:latest 镜像。

      • 端口映射:8080:80 将主机的 8080 端口映射到容器的 80 端口。
      • 卷:./html:/usr/share/nginx/html 将主机上的 html 目录挂载到容器内的 Nginx 服务器根目录。
      • 依赖:depends_on 指定该服务依赖 db 服务,即 db 服务会先启动。
    • db 服务使用 mysql:5.7 镜像。

      • 环境变量:

        environment:
          MYSQL_ROOT_PASSWORD: example
          MYSQL_DATABASE: exampledb
          MYSQL_USER: user
          MYSQL_PASSWORD: password

        这些变量配置 MySQL 数据库的初始设置,包括根密码、数据库名、用户名和用户密码。

      • 卷:db_data:/var/lib/mysql 将数据保存到 Docker 卷 db_data 中,以确保数据库的数据持久化。
  3. volumes:
      db_data:
    • 定义了一个名为 db_data 的卷,用于存储 MySQL 数据库的数据。

这个配置文件创建了一个简单的应用程序,其中包含一个 Nginx 服务器和一个 MySQL 数据库。您可以通过运行 docker-compose up 来启动这两个服务。

Docker Compose 安装

在 Linux 上,我们可以从 Github 上下载它的二进制包来使用,运行以下命令下载 Docker Compose 的当前稳定版本:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

将可执行权限应用于二进制文件:

sudo chmod +x /usr/local/bin/docker-compose

创建软链接:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

测试是否安装成功:

docker-compose version

本文由mdnice多平台发布


逼格高的汤圆
7 声望2 粉丝