是一个容器编排工具,可以通过一个脚本,先安装 Tomcat 容器,在安装 MySQL 容器
YAML
文件来配置你的应用服务K8S
这些集群部署工具docker-compose
工具sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
对 Docker-Compose 进行文件夹的授权
sudo chmod +x /usr/local/bin/docker-compose
使用 docker-compose -version
查看版本
docker-compose -version
首先需要添加(安装)打包插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
执行 install
命令,然后对应的 jar 包就会被打出来
了解了SpringBoot将项目进行打包之后我这里将会给出一个小小的项目就是单表CRUD的包含对应的SQL语句
这里有一个注意点,我把 application.yml 中 datasource 中 url 里面数据库地址换成了 db
如下图所示,这么做的原因就是后面我会利用 docker-compose 来进行替换,就是运行一个 MySQL 容器之后该项目启动的时候依赖于该镜像,会自动的去找该 MySQL 镜像所启动的容器
首先我们需要将 .jar
与 .sql
文件上传到 Linux 服务器系统当中,如下
上图当中我没有进行分包所以分包之后的效果如下图,当然也可以不分
进入到 myApp 文件夹当中然后创建 Dockerfile 文件,内容如下
FROM openjdk:11.0-jre
WORKDIR /usr/local/my-springboot-project
ADD myProject.jar .
EXPOSE 8808
CMD ["java", "-jar", "myProject.jar"]
构建一个所对应的镜像构建命令如下
docker build -t it6666/myapp:1.0 .
以该镜像启动一个容器如下
docker run it6666/myapp:1.0
可以看到已经启动完毕了,App 的已经完毕,接下来要介绍的是 MySQL 的打包和启动,这里有一个注意点需要讲解所以我单独的拎出来讲解了如下
FROM mysql:8.0
WORKDIR /docker-entrypoint-initdb.d
ADD springboot.sql .
请注意如上的 Dockerfile 内容当中有一句 WORKDIR /docker-entrypoint-initdb.d
这句的含义为就是在以镜像创建所对应的容器的时候做初始化的时候会帮你执行 ADD 命令所对应的 .sql
文件它会自动的帮你进行运行并初始化好所对应的表以及数据库,好了到这里先介绍这么多先构建镜像,待会运行所对应的容器在看这个注意点即可
docker build -t it6666/mydb .
构建完毕之后在以该镜像运行一个容器,运行容器命令如下
docker run -d -e MYSQL_ROOT_PASSWORD=1234 it6666/mydb:latest
构建完成然后在进入到容器当中,查看数据库如下已经自动的帮你运行了 ADD .sql
所指定的文件内容数据库已经创建好了
docker exec -it a4a950ec3df3 bash
如上构建 App 与 DB 都已经讲解完毕,接下来就利用 docker-compose 来将它们整合在一起,一起启动一起关闭,在 myapp 与 mydb 同层级文件夹下创建一个 docker-compose.yml
文件内容如下
version: '3.3'
services:
db:
build: ./mydb/
restart: always
container_name: mysql
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
environment:
MYSQL_ROOT_PASSWORD: 1234
app:
build: ./myapp/
depends_on:
- db
ports:
- "8808:8808"
restart: always
利用 docker-compose
启动容器命令如下
docker-compose up
启动完成即可访问部署好的项目效果如下所示
但是如果使用如上的方式进行启动的话你关闭了项目就停掉了,如果想要在后台运行加上一个 -d
即可
docker-compose up -d
如果想要关闭容器可以利用如下命令进行关闭
docker-compose down
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。