简单介绍了使用DockerCompose快速部署多个容器
DockerCompose简介
简介
Docker Compose通过一个单独的docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器,实现多个相互关联的Docker容器的快速部署
手动与DockerCompose对比:

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表示后台运行,这样就不会在前台占用终端了