docker部署项目-DockerCompose一键部署

DockerCompose一键部署

说明

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

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
42
43
44
45
version: "3.8"

services:
mysql: # mysql服务,在本docker-conpose.yml文件中定义的服务名(可用于后面的服务依赖,控制服务的启动顺序)
image: mysql # 使用的镜像名
container_name: mysql # 创建的容器名
ports:
- "3306:3306" # 绑定端口
environment: # 该容器本身使用的环境变量
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123
volumes: # 该容器挂载的数据卷
- "./mysql/conf:/etc/mysql/conf.d"
- "./mysql/data:/var/lib/mysql"
- "./mysql/init:/docker-entrypoint-initdb.d"
networks: # 连接到的网络,以便同一网络下的容器可通过容器名互ping
- hm-net
hmall: # hmall服务
build: # 没有现成的镜像文件,需要先使用dockerfile文件打包镜像
context: . # 指定dockerfile文件所在路径
dockerfile: Dockerfile
container_name: hmall
ports:
- "8080:8080"
networks:
- hm-net
depends_on: # 依赖于mysql服务,这表示mysql服务会在本hmall服务之前启动
- mysql
nginx: # nginx服务
image: nginx
container_name: nginx
ports:
- "18080:18080"
- "18081:18081"
volumes:
- "./nginx/nginx.conf:/etc/nginx/nginx.conf"
- "./nginx/html:/usr/share/nginx/html"
depends_on:
- hmall
networks:
- hm-net
networks: # 定义网络
hm-net: # 这是在本配置文件中用来引用网络的别名,
name: hmall # 这是网络的实际名称,当docker compose创建网络时,会在docker中创建一个名为hmall的网络
# 在上面服务的networks:的配置中,既可使用别名,也可使用实际名称,效果一样

Docker compose命令

1
docker compose [OPTIONS] [COMMAND]
类型 参数或指令 说明
Options -f 指定compose文件的路径和名称
Options -p 指定project名称
Commands up 创建并启动所有service容器
Commands down 停止并移除所有容器、网络
Commands ps 列出所有启动的容器
Commands logs 查看指定容器的日志
Commands stop 停止容器
Commands start 启动容器
Commands restart 重启容器
Commands top 查看运行的进程
Commands exec 在指定的运行中容器中执行命令
Contents
  1. 1. DockerCompose一键部署
    1. 1.1. 说明
    2. 1.2. docker-compose.yml文件
    3. 1.3. Docker compose命令
|