容器编排技术 docker compose 部springboot项目(mysql) 20210821
############springboot 项目 实例
############mysql ######################
################################################
1、springboot 项目 docker-compose.yml###内容如下
version: "3.0" #定义compose 版本号
services: ##服务,每个服务实际上就是一个独立容器运行
mysql: ##mysql服务
##container_name: mayikt007_tomcat8080_1 ##容器名称
command: --default-authentication-plugin=mysql_native_password ##解决外部无法访问
image: mysql:5.7 #
ports:
- 3306:3306 #容器端口映射到宿主机端口
environment:
MYSQL_ROOT_PASSWORD: 'root'
MYSQL_PASSWORD_EMPTY_PASSWORD: 'no'
MYSQL_DATABASE: 'test'
MYSQL_USER: 'mayikt'
MYSQL_PASSWORD: 'mayikt'
networks: ###定位服务的桥
- mayikt_web
mayikt_web: ##自己单独的springboot项目
hostname: mayikt
build: ./ #需要构建的Dokcerfile文件
ports:
- 38000:8080 #容器端口映射到宿主机端口
depends_on: #web服务依赖mysql服务,需要mysql服务先启动
- mysql
networks: ###定位服务的桥
- mayikt_web
networks: ###定位服务的桥
mayikt_web:
2、springboot 项目 先打包为镜像文件mayikt
#######Dokcerfile###内容如下
##基础镜像使用java
FROM java:8
##自己定制的镜像文件作者
MAINTAINER www.mayikt.com
##VOLUME 用于指定临时文件且目录为/tmp
##其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
#将jar包 添加到容器中并更名为mayikt.jar
ADD mayikt-springboot-0.0.1-SNAPSHOT.jar mayikt.jar
#运行jar包
RUN bash -c 'touch /mayikt.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/mayikt.jar"]
###暴露端口8080
EXPOSE 8080
3、springboot 项目
docker-compose.yml,Dokcerfile,mayikt-springboot-0.0.1-SNAPSHOT.jar
上传到 宿主机目录 /usr/mayikt007/
######
#####jdbc:mysql://mysql:3306/test?useUnicode=true&characterEncoding=utf8
#####mysql为mysql容器名称
先生成Dockerfile镜像文件
4、执行docker-compose up
###先安装mysql
注:docker-compose up 提示如下错识
解决方法如下
https://blog.csdn.net/robin90814/article/details/118188731
生成 web、mysql容器如下
注: 生成mysql容器的test库的数据表为空,需要手工同步一下
5、浏览器访问
http://192.168.254.128:38000/mayikt/list
6、其他
springboot 项目Dockerfile可以先生成镜像 ,再docker-compose up
参考 https://www.cnblogs.com/niun/articles/14626836.html