docker 容器编排,主要用于多个有关联关系的容器管理,例如容器有依赖关系,微服务启动依赖于中间件,需要中间件先启动,其本质就是将一条条的容器启动命令统一放到一个脚本里面,通过启动,停止脚本去管理所容器。
一.微服务启动案例
1.创建docker-compose.yml 文件,文件名必须是这个,微服务启动依赖与redis和mysql
version: "3"
services:
microService:
image: mydockerjavaweb:v0.1
container_name: ms01
ports:
- "8090:8090"
volumes:
- D:/mydocker/compose/microService:/data
networks:
- lenged_net
depends_on:
- redis
- mysql
redis:
image: redis:6.0.8
ports:
- "6379:6379"
volumes:
- D:/mydocker/compose/redis-ms/redis.conf:/etc/redis/redis.conf
- D:/mydocker/compose/redis-ms/data:/data
networks:
- lenged_net
command: redis-server /etc/redis/redis.conf
mysql:
image: mysql:5.7
environment:
MYSLQ_ROOT_PASSWORD: '123456'
MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
MYSQL_DATABASE: 'db2022'
MYSQL_USER: 'lenged'
MYSQL_PASSWORD: 'lenged'
ports:
- "3360:3306"
volumes:
- D:/mydocker/compose/mysql-ms/db:/var/lib/mysql
- D:/mydocker/compose/mysql-ms/conf/my.cnf:/etc/my.cnf
- D:/mydocker/compose/mysql-ms/init:/docker-entrypoint-initdb.d
networks:
- lenged_net
command: --default-authentication-plugin=mysql_native_password #解决外部无法访问
networks:
lenged_net:
此时微服务的yml配置文件数据库和redis可以配置为,容器服务名,类似于feign不用关注容器具体的ip
2.运行docker-compose.yml文件
2.1验证docker-compose.yml文件是否正确:没有报错即为正确
docker-compose config -q #文件名必须为docker-compose.yml
2.1 启动 docker-compose up -d
#创建并启动
docker-compose up -d
#停止并销毁
docker-compose down
#启动
docker-compse start
#停止
docker-compse stop
其他命令docker-compose --help
注意:docker-compose创建网络时回加上当前文件夹的路径