docker-compose实战
1. 常用命令
前台启动, 启动项目中的所有服务
docker-compose up
后台启动, 启动所有服务并在后台运行
docker-compose up -d
重新编译文件并启动
docker-compose up --build nginx
停止所有服务, 保留容器
docker-compose stop
停止所有服务, 删除容器
docker-compose down
删除容器
docker-compose rm -f nginx
重启容器
- 重启所有服务的容器
docker-compose restart
- 重启指定服务的容器
docker-compose restart nginx
- 重启所有服务的容器
启动容器
- 启动所有服务的容器
docker-compose start
- 启动指定服务的容器
docker-compose start nginx
- 启动所有服务的容器
停止容器
- 停止所有服务的容器
docker-compose stop
- 停止指定服务的容器
docker-compose stop nginx
- 停止所有服务的容器
进入容器
进入指定服务的容器
docker-compose exec nginx bash
2. 实战使用
部署项目tms
1. 准备工作
在目录home/userxxx 下创建文件夹 tms及相关前后端文件夹
1
2
3
4
5
6mkdir tms
cd tms
mkdir deploy
cd deploy
mkdir backend
mkdir frontend安装docker, docker-compose
Docker 注意修改默认挂载地址
2. 部署中间件
middleware目录下上传docker-compose.yml
1
2cd deploy
mkdir middleware使用
docker-compose up prod
启动redis,rabbitMQ,postgresql(需开放对应端口或后续修改nginx配置通过nginx访问)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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71networks:
tms:
external: true
services:
rabbitmq:
image: rabbitmq:3-management-alpine
hostname: rabbitmq
container_name: rabbitmq
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
TZ: Asia/Shanghai
ports:
- "5672:5672"
- "15672:15672"
restart: always
networks:
- tms
volumes:
- /etc/localtime:/etc/localtime:ro
redis:
image: redis
container_name: redis
ports:
- 6379:6379
restart: always
networks:
- tms
environment:
TZ: Asia/Shanghai
volumes:
- /etc/localtime:/etc/localtime:ro
nginx:
image: nginx:latest
container_name: nginx
ports:
- "80:80"
- "443:443"
restart: always
volumes:
- ./nginx/config/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/config/conf.d:/etc/nginx/conf.d
- ./nginx/ssl:/etc/nginx/ssl
- ./nginx/logs:/var/log/nginx
- ./nginx/html:/usr/share/nginx/html
- ../frontend:/home/deploy/tms/frontend
- /etc/localtime:/etc/localtime:ro
networks:
- tms
environment:
TZ: Asia/Shanghai
mysql:
image: mysql:8.0
container_name: mysql
environment:
MYSQL_DATABASE: xxl_job
MYSQL_USER: root
MYSQL_PASSWORD: root@1234
MYSQL_ROOT_PASSWORD: root@1234
TZ: Asia/Shanghai
ports:
- "3306:3306"
restart: always
volumes:
- mysql_data:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
networks:
- tms
3. 部署vue
进入前端目录,上传dist目录到web目录
1
2cd frontend
mkdir web更新nginx.conf配置, 并重启
1 |
|
4. docker-compose部署后端
backend对应目录下上传jar包和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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86networks:
tms:
external: true
services:
eureka-server:
image: openjdk:17
container_name: eureka-server
restart: always
networks:
- tms
ports:
- "8002:8002"
volumes:
- ./eureka-server:/home
environment:
- SPRING_PROFILES_ACTIVE=prod
command: ["java", "-jar", "/home/eureka-server-1.0-SNAPSHOT.jar"]
gateway-server:
image: openjdk:17
container_name: gateway-server
restart: always
networks:
- tms
ports:
- "8001:8001"
volumes:
- ./gateway-server:/home
environment:
- SPRING_PROFILES_ACTIVE=prod
command: ["java", "-jar", "/home/gateway-server-1.0-SNAPSHOT.jar"]
auth-service:
image: openjdk:17
container_name: auth-service
restart: always
networks:
- tms
ports:
- "8003:8003"
volumes:
- ./auth-service:/home
environment:
- SPRING_PROFILES_ACTIVE=prod
command: ["java", "-jar", "/home/auth-service-1.0-SNAPSHOT.jar"]
user-service:
image: openjdk:17
container_name: user-service
restart: always
networks:
- tms
ports:
- "8101:8101"
volumes:
- ./user-service:/home
environment:
- SPRING_PROFILES_ACTIVE=prod
command: ["java", "-jar", "/home/user-service-1.0-SNAPSHOT.jar"]
assistant-service:
image: openjdk:17
container_name: assistant-service
restart: always
networks:
- tms
ports:
- "8004:8004"
volumes:
- ./assistant-service:/home
environment:
- SPRING_PROFILES_ACTIVE=prod
command: ["java", "-jar", "/home/assistant-service-1.0-SNAPSHOT.jar"]
tms-service:
image: openjdk:17
container_name: tms-service
networks:
- tms
ports:
- "8103:8103"
volumes:
- ./tms-service:/home
environment:
- SPRING_PROFILES_ACTIVE=prod
command: ["java", "-jar", "/home/tms-service-1.0-SNAPSHOT.jar"]
docker-compose实战
http://example.com/docker-compose实战/