Skip to main content

docker-compose 入门

了解如何使用 docker 后,会发现启动一个容器需要输一行命令,这个命令还带有几个,甚至十来个参数。单是一个容器,这种情况还能处理,如果要管理多个容器,就变得非常棘手。

这时就需要使用 docker-compose 来编排应用,简化管理了。

开始

使用 docker-compose 创建容器,先要创建一个 docker-compose.yml 配置文件。

version: '3.9'

services:
nginx:
image: nginx:alpine
container_name: nginx
ports:
- "8080:80"

使用 docker-compose up 启动容器。

# 启动
docker-compose up

# 在后台启动
docker-compose up -d

# 启动三个实例
docker-compose up --scale nginx=3

# 查看日志,而不退出
docker-compose logs -f

# 停止
docker-compose stop

# 删除
docker-compose rm

# 在某个 Service 下的容器中执行命令
docker-compose exec nginx sh

可以使用 docker-compose up 启动容器测试没有问题后,再 ctrl+c 退出,重新用 docker-compose up -d 在后台启动。

配置文件介绍

配置文件采用 yml 格式,顶层主要有 version、services、networks.

  • version 定义配置文件版本,目前稳定的是 3.9 版本
  • services 定义服务主体,一个配置文件可以包含多个服务
  • networks 定义服务器网络,可以在不同服务之间创建虚拟交换网络

在来看单个服务配置

  nginx:
image: nginx:alpine
container_name: nginx-service
restart: always
ports:
- "8888:80"