Docker Compose 的用法详解

内容纲要

引言

Docker Compose 是一个用于定义和管理多容器 Docker 应用的工具。它通过一个 YAML 文件来描述应用的服务、网络和卷,使用简单的命令来管理整个应用的生命周期。本文将详细介绍 Docker Compose 的基本用法和常见操作。

安装 Docker Compose

在使用 Docker Compose 之前,需要确保已经安装了 Docker Compose。可以通过以下命令检查是否已经安装:

docker-compose --version

如果未安装,可以按照官方文档进行安装。

创建 docker-compose.yml 文件

docker-compose.yml 文件是 Docker Compose 的核心,通过这个文件定义应用的各个服务。下面是一个简单的示例:

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
  redis:
    image: redis:alpine

这个示例定义了两个服务:一个 Nginx Web 服务器和一个 Redis 数据库。

常用命令

Docker Compose 提供了一组命令来管理多容器应用。以下是一些常用的命令:

启动服务

使用 up 命令启动所有定义的服务:

docker-compose up

添加 -d 选项可以在后台运行服务:

docker-compose up -d

停止服务

使用 down 命令停止并移除容器、网络和卷:

docker-compose down

查看服务日志

使用 logs 命令查看所有服务的日志:

docker-compose logs

可以通过指定服务名称来查看特定服务的日志:

docker-compose logs web

列出服务

使用 ps 命令列出当前正在运行的服务:

docker-compose ps

重新启动服务

使用 restart 命令重新启动服务:

docker-compose restart

构建服务

使用 build 命令构建或重新构建服务:

docker-compose build

执行命令

使用 exec 命令在运行中的容器内执行命令:

docker-compose exec web /bin/bash

拉取镜像

使用 pull 命令从 Docker 注册表中拉取服务镜像:

docker-compose pull

进阶用法

使用环境变量

可以在 docker-compose.yml 文件中使用环境变量,来简化配置管理。环境变量可以在 .env 文件中定义:

WEB_PORT=80
REDIS_IMAGE=redis:alpine

docker-compose.yml 文件中引用这些变量:

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "${WEB_PORT}:80"
  redis:
    image: "${REDIS_IMAGE}"

使用卷进行数据持久化

卷用于在容器之间共享数据或在容器停止后保留数据。在 docker-compose.yml 文件中定义卷:

version: '3.8'

services:
  db:
    image: postgres:alpine
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

使用网络配置服务通信

自定义网络使服务可以通过名称互相访问。在 docker-compose.yml 文件中定义网络:

version: '3.8'

services:
  app:
    image: my_app
    networks:
      - app_network
  db:
    image: postgres:alpine
    networks:
      - app_network

networks:
  app_network:
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容