DockerCompose简介

简单介绍了使用DockerCompose快速部署多个容器

DockerCompose简介

简介

Docker Compose通过一个单独的docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器,实现多个相互关联的Docker容器的快速部署

手动与DockerCompose对比

image-20251003230248658

docker-compose.yml文件示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
services:
  mysql: # 配置mysql服务
    image: mysql:8
    container_name: mysql
    ports:
      - "3307:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123
    volumes: # 挂载的数据卷或本地目录
      - "/usr/local/app/mysql/conf:/etc/mysql/conf.d"
      - "/usr/local/app/mysql/data:/var/lib/mysql"
      - "/usr/local/app/mysql/init:/docker-entrypoint-initdb.d"
    networks: # 使用的网络
      - tlias-net
  tlias: # 配置tlias服务
    build: # 自己构建镜像
      context: . # Dockerfile文件位置,"."表示在当前目录
      dockerfile: Dockerfile # Dockerfile文件的名字
    container_name: tlias-server
    ports:
      - "8080:8080"
    networks:
      - tlias-net
    depends_on: # 当前服务依赖的服务,让dockerCompose知道容器部署顺序
      - mysql
  nginx: # 配置nginx服务
    image: nginx:1.20.2
    container_name: nginx-tlias
    ports:
      - "80:80"
    volumes:
      - "/usr/local/app/nginx/conf/nginx.conf:/etc/nginx/nginx.conf"
      - "/usr/local/app/nginx/html:/usr/share/nginx/html"
    depends_on:
      - tlias
    networks:
      - tlias-net
networks: # 要加入的网络
  tlias-net: # 提供给上面配置信息引用的名字
    name: itheima # 要加入的网络的实际名称,若不存在则创建

基础命令

1
docker compose [OPTIONS] [COMMAND]

常见参数

类型 参数或指令 说明
Options -f 指定compose文件的路径和名称
-p 指定project名称。project就是当前compose文件中设置的多个service的集合,是逻辑概念
Commands up 创建并启动所有service容器
down 停止并移除所有容器、网络
ps 列出所有启动的容器
logs 查看指定容器的日志
stop 停止容器
start 启动容器
restart 重启容器
top 查看运行的进程
exec 在指定的运行中容器中执行命令

一般创建并启动时会在末尾加上-d表示后台运行,这样就不会在前台占用终端了

本站于2025年3月26日建立
使用 Hugo 构建
主题 StackJimmy 设计