1、配置好第三方docker-compose-env.yml
2、微服务打jar包,改好配置,IP变为对应第三方镜像名称
3、微服务制作成镜像dockerfile
4、配置docker-compose-app.yml
5、执行命令
一、创建docker-compose.yml文件
docker-compose描述了对容器的配置,镜像细节写在Dockerfile中,而容器配置写在compose.yml上。这点要注意。
docker-compose up -d 执行
这样会构建一个容器,
加上参数 --build可以重新构建,用于更新jar包的场景
二、Docker Compose管理容器的结构
Docker Compose所管理的容器分为三层:
工程:docker-mall就是一个compose工程
服务:不同容器中运行了不同的服务,如redis、Mysql服务等。
容器:order、gateway就是容器
三、正式编排微服务项目
一般部署时,先把第三方先部署好
1、创建空目录dlnu-mall
2、在目录下dlnu-mall下创建编排文件docker-compose-env.yml内容如下:
在这里注意下挂载,每次容器运行相应镜像时,需要挂载我们自己的配置文件,这里注意一点:
如:mydata/mysql/data/db/ 这样子的具体文件夹系统可以帮我们创建好,但是具体文件,需要我们自己手动创建好否则报错。
以上是部分第三方组件的配置,接下来配置我们的微服务jar
1、首先在dlnu-mall目录下分别创建authcenter、gateway、member、order、product
这几个微服务对应的目录。
2、把微服务项目打好jar,并把jar放入对应的文件夹
3、改变我们的springboot的yml配置信息
这里注意:我们项目中。不要写ip了,而是写对应的镜像名称,如 localhost:3306变为 mysql:3306
因为docker能够根据mysql找到对应容器的ip地址,从而继续运行。
写好配置文件后:
1、在微服务目录下创建Dockerfile,制作jar包对应的镜像
打好镜像后,接下来编排docker-compose-app.yml
注意:
docker可以在单物理机下进行动态扩容,一行命令:
我们项目中,除了gateway,其他服务扩容后通过服务吗,走nacos可以正常访问,但是gateway是前端通过HTTP访问的,那么Gateway如何扩容?
可以去另外一台机器上扩容gateway。前端用nginx负载均衡