网站500,网站官网认证加v怎么做,做响应式网站设计做图怎么搞,网站开发指什么软件目录 1.Docker-Compose
1.1.初识DockerCompose
1.2.安装DockerCompose
1.2.1 修改文件权限
1.2.2 Base自动补全命令#xff1a;
1.3部署微服务集群
1.3.1.compose文件
1.3.2.修改微服务配置
1.3.3.打包
1.3.4.拷贝jar包到部署目录
1.3.5.部署 1.Docker-Compose
Doc…目录 1.Docker-Compose
1.1.初识DockerCompose
1.2.安装DockerCompose
1.2.1 修改文件权限
1.2.2 Base自动补全命令
1.3部署微服务集群
1.3.1.compose文件
1.3.2.修改微服务配置
1.3.3.打包
1.3.4.拷贝jar包到部署目录
1.3.5.部署 1.Docker-Compose
Docker Compose可以基于Compose文件帮我们快速的部署分布式应用而无需手动一个个创建和运行容器 1.1.初识DockerCompose
Compose文件是一个文本文件通过指令定义集群中的每个容器如何运行。格式如下
version: 3.8services:mysql:image: mysql:5.7.25environment:MYSQL_ROOT_PASSWORD: 123 volumes:- /tmp/mysql/data:/var/lib/mysql- /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnfweb:build: .ports:- 8090:8090
上面的Compose文件就描述一个项目其中包含两个容器 mysql一个基于mysql:5.7.25镜像构建的容器并且挂载了两个目录 web一个基于docker build临时构建的镜像容器映射端口时8090 DockerCompose的详细语法参考官网Overview | Docker Docs 其实DockerCompose文件可以看做是将多个docker run命令写到一个文件只是语法稍有差异。 1.2.安装DockerCompose
# 安装
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-uname -s-uname -m /usr/local/bin/docker-compose
1.2.1 修改文件权限
修改文件权限
# 修改权限
chmod x /usr/local/bin/docker-compose 1.2.2 Base自动补全命令
# 补全命令
curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose /etc/bash_completion.d/docker-compose
如果这里出现错误需要修改自己的hosts文件
echo 199.232.68.133 raw.githubusercontent.com /etc/hosts
1.3部署微服务集群
需求将cloud-demo微服务集群利用DockerCompose部署 实现思路
① 查看cloud-demo文件夹里面已经编写好了docker-compose文件
② 修改自己的cloud-demo项目将数据库、nacos地址都命名为docker-compose中的服务名
③ 使用maven打包工具将项目中的每个微服务都打包为app.jar
④ 将打包好的app.jar拷贝到cloud-demo中的每一个对应的子目录中
⑤ 将cloud-demo上传至虚拟机利用 docker-compose up -d 来部署 1.3.1.compose文件
查看cloud-demo文件夹里面已经编写好了docker-compose文件而且每个微服务都准备了一个独立的目录 内容如下
version: 3.2
services:nacos:image: nacos/nacos-serverenvironment:MODE: standaloneports:- 8848:8848mysql:image: mysql:5.7.25environment:MYSQL_ROOT_PASSWORD: 123volumes:- $PWD/mysql/data:/var/lib/mysql- $PWD/mysql/conf:/etc/mysql/conf.d/userservice:build: ./user-serviceorderservice:build: ./order-servicegateway:build: ./gatewayports:- 10010:10010
可以看到其中包含5个service服务 nacos作为注册中心和配置中心 image: nacos/nacos-server 基于nacos/nacos-server镜像构建 environment环境变量 MODE: standalone单点模式启动 ports端口映射这里暴露了8848端口 mysql数据库 image: mysql:5.7.25镜像版本是mysql:5.7.25 environment环境变量 MYSQL_ROOT_PASSWORD: 123设置数据库root账户的密码为123 volumes数据卷挂载这里挂载了mysql的data、conf目录其中有我提前准备好的数据 userservice、orderservice、gateway都是基于Dockerfile临时构建的 查看mysql目录可以看到其中已经准备好了cloud_order、cloud_user表 查看微服务目录可以看到都包含Dockerfile文件 内容如下
FROM java:8-alpine
COPY ./app.jar /tmp/app.jar
ENTRYPOINT java -jar /tmp/app.jar 1.3.2.修改微服务配置
因为微服务将来要部署为docker容器而容器之间互联不是通过IP地址而是通过容器名。这里我们将order-service、user-service、gateway服务的mysql、nacos地址都修改为基于容器名的访问。
如下所示
spring:datasource:url: jdbc:mysql://mysql:3306/cloud_order?useSSLfalseusername: rootpassword: 123driver-class-name: com.mysql.jdbc.Driverapplication:name: orderservicecloud:nacos:server-addr: nacos:8848 # nacos服务地址 1.3.3.打包
接下来需要将我们的每个微服务都打包。因为之前查看到Dockerfile中的jar包名称都是app.jar因此我们的每个微服务都需要用这个名称。
可以通过修改pom.xml中的打包名称来实现每个微服务都需要修改
build!-- 服务打包的最终名称 --finalNameapp/finalNamepluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins
/build
打包后 1.3.4.拷贝jar包到部署目录
编译打包好的app.jar文件需要放到Dockerfile的同级目录中。注意每个微服务的app.jar放到与服务名称对应的目录别搞错了。
user-service order-service gateway 1.3.5.部署
最后我们需要将文件整个cloud-demo文件夹上传到虚拟机中理由DockerCompose部署。
上传到任意目录 部署
进入cloud-demo目录然后运行下面的命令
docker-compose up -d