利用docker compose编排springboot+mysql+redis
19 Docker compose
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Compose 使用的三个步骤:
- 使用 Dockerfile 定义应用程序的环境。
- 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
- 最后,执行 docker-compose up 命令来启动并运行整个应用程序。
Docker Compose 官网:https://docs.docker.com/compose/
19.1 docker compose 安装
参照官网:https://docs.docker.com/compose/install/
# 下载安装
curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 授权
chmod +x /usr/local/bin/docker-compose
检查是否安装成功,输入docker-compose
19.2 docker-compose.yml
参考我的项目写的
#指定docker-compose 文件版本
##指定 docker-compose.yml 文件的写法格式
version: '3'
services:
# 指定服务名称
webapp:
# 指定容器名称
container_name: springboot_redis_mysql_composebuild2
restart: always
build: ./
#working_dir: /usr/local/
# #volumes:
# # - /usr/local/springboot2/:/usr/local/springboot2/
# # 指定服务运行的端口
ports:
- "80:9999"
depends_on:
- redis8
- mysql8
links:
- redis8:redisdb
- mysql8:mysqldb
# 指定redis服务名称
redis8:
# 指定容器名称
container_name: redis-test-composebuild
# 指定服务使用的镜像
image: redis
restart: always
ports:
- "6379:6379"
command: redis-server --appendonly yes --requirepass "123456" --protected-mode no
mysql8:
container_name: mysql-test-composebuild3
image: mysql
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: 123456
疑点: 我还没有指定哪个jar包啊,他怎么运行的?????
在上面这个yml文件中的webapp的build选项就是我们之前build的选项,也就是我们还需要之前的Dockerfile文件。
docker-compose只是类似于一种脚本帮我们把命令归到一起
19.3 启动服务
docker-compose up
19.4 停止服务
docker-compose stop
19.5 停止并删除服务(慎用)
docker-compose down
查看日志:docker-compose logs -f