神奇的Willem

Docker Compose配置文件和基本命令

什么是 Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个 YAML 文件(docker-compose.yml),您可以配置应用程序的所有服务,然后使用单个命令创建和启动所有服务。

主要功能:

  • 使用 YAML 文件管理多容器应用

  • 一键启动/停止整个应用栈

  • 服务间网络和卷管理

  • 环境变量配置

  • 服务依赖关系管理

安装 Docker Compose

在安装 Docker Compose 前,请确保已安装 Docker Engine

Linux 安装方法

# 下载最新版本的 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/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.0

Windows/macOS 安装

Windows 和 macOS 的 Docker Desktop 已包含 Docker Compose,无需单独安装。

Docker Compose 基础

核心概念

  1. 服务 (Service):一个容器化的应用(如 web 服务器、数据库)

  2. 项目 (Project):由一组关联服务组成的完整应用

  3. Compose 文件:定义服务、网络和卷的 YAML 文件

docker-compose.yml 文件结构

version: "3.9"  # Compose 文件格式版本

services:        # 定义所有服务
  web:           # 服务名称
    image: nginx:alpine  # 使用的镜像
    ports:
      - "80:80"  # 端口映射
    volumes:
      - ./html:/usr/share/nginx/html  # 卷挂载

  db:
    image: postgres:15
    environment:  # 环境变量
      POSTGRES_PASSWORD: example

volumes:         # 定义卷
  db-data:       # 卷名称

YAML 文件关键字段

字段

说明

示例

version

Compose 文件版本

"3.9"

services

定义所有服务

image

使用的 Docker 镜像

nginx:alpine

build

根据 Dockerfile 构建镜像

context: ./dir

ports

端口映射

- "8080:80"

volumes

卷挂载

- ./data:/app/data

environment

设置环境变量

DEBUG: "true"

depends_on

服务依赖关系

- db

networks

加入的网络

- backend

  • image: 指定服务使用的 Docker 镜像。可以直接使用 Docker Hub 上的镜像 (例如 nginx:latest, mysql:8.0),也可以指定私有仓库的镜像。

快速入门示例

1. 创建简单的 WordPress 站点

# docker-compose.yml
version: "3.9"

services:
  db:
    image: mysql:8.0
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpresspass

  wordpress:
    image: wordpress:latest
    ports:
      - "8000:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpresspass
      WORDPRESS_DB_NAME: wordpress
    depends_on:
      - db

volumes:
  db_data:

启动应用:

docker-compose up -d

访问 http://localhost:8000 完成 WordPress 安装

一般来说docker和docker Compose文件一些人员已经写好了,比如环境变量的意思,可以根据情况查看开发者文档更改

主要注意,版本,端口映射,挂载路径等。

常用命令

命令

说明

docker-compose up

创建并启动所有服务

docker-compose up -d

在后台运行服务

docker-compose down

停止并移除所有容器、网络

docker-compose ps

查看运行中的服务

docker-compose logs

查看服务日志

docker-compose logs -f web

实时查看 web 服务日志

docker-compose build

构建或重新构建服务镜像

docker-compose start

启动已存在的服务

docker-compose stop

停止运行中的服务

docker-compose restart

重启服务

docker-compose exec web sh

进入 web 服务的容器

docker-compose pull

拉取服务的最新镜像

docker-compose config

验证 Compose 文件格式