假设这个docker-compose文件定义了一个Spring Boot服务、一个Redis实例和一个MySQL数据库,并配置了它们之间的网络连接和端口映射
# docker-compose文件版本号,有v1、v2c和v3等版本
version: "3.9"
# 配置各个容器服务
services:
#新建centos、redis和mysql三个容器实例
centos:
image: centos:7
container_name: centos # 容器名称,如果不指定,会生成一个服务名加上前缀的容器名
ports:
- "6001:6001"
volumes:
- /app/centos:/data
networks:
- springboot_network
depends_on: # 配置该容器服务所依赖的容器服务
- redis
- mysql
command: /bin/bash -c "while true; do sleep 1000; done"
redis:
image: redis:6.0.8
ports:
- "6379:6379"
volumes:
- /app/redis/redis.conf:/etc/redis/redis.conf
- /app/redis/data:/data
networks:
- springboot_network
command: redis-server /etc/redis/redis.conf
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: '123456'
MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
MYSQL_DATABASE: 'db_springboot'
MYSQL_USER: 'springboot'
MYSQL_PASSWORD: 'springboot'
ports:
- "3306:3306"
volumes:
- /app/mysql/db:/var/lib/mysql
- /app/mysql/conf/my.cnf:/etc/my.cnf
- /app/mysql/init:/docker-entrypoint-initdb.d
networks:
- springboot_network
command: --default-authentication-plugin=mysql_native_password # 解决外部无法访问
networks:
# 创建 springboot_network 网桥网络
springboot_network: