哈喽各位同学们大家好呀,小编今天为大家分享开发者学院中课程“Spring Boot2.5实战Docker容器”干货总结哦,并且是Spring Boot 2.5.x开发实战的最后一篇~Spring Boot 2.5.x开发实战可是Java中级工程师必备课程!
课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳????
课程名称:Spring Boot 2.5.x开发实战
课程地址:https://developer.aliyun.com/learning/course/71
图谱名称:Alibaba Java 技术图谱
图谱地址:https://developer.aliyun.com/graph/java
明日将为大家分享新课程“Dubbo 分布式服务治理实践”,敬请期待吧!
Spring Boot2.5实战Docker容器
-
Spring Boot2.5.x部署方式
由于Spring Boot内嵌了很多Web容器,现在部署Spring Boot应用相对比较简单。这里指的Web应用可以用这个方法部署。如果要部署普通的应用,比如命令方式,也可以用doctor方式或者用其他的部署工具结合服务器或者远端的云端服务器进行自动化部署。
(二)Spring Boot实战Docker容器DockerHub
Docker作为一个容器工具,它实际是一个平台、一个生态,它包括Docker的服务器端、客户端以及仓库和可视化管理界面。
我给大家讲课的时候用的是windows10,两年前windows1不支持Docker,现在基本上就可以了,因为要开虚拟化技术。如果你用Linux环境或者Mac OS,Docker环境是比较容易安装。
DockerHub本身是个类似于一个镜像的仓库,只不过这个服务器基本上都在美国。国内的话像阿里跟Docker签了合作协议,阿里云构建了一个Docker*的镜像服务,可以创建Docker的私有仓库。阿里云注册账号后在自己的账号里面可以看到Docker的一个镜像。Docker应用程序的一个构建和发布标准化大规模集群的部署提供了非常便捷的操作方式。
Docker本身也有自己的管理工具叫Docker swarm。当有了Docker专属的DockerHub地址之后,再想上传到镜像的时候,可以上传到阿里云的Docker仓库里面。
在上传到阿里云仓库之前要先构建镜像,比如MySQL、MongoDB、Redis或者Java的一些标准主机镜像以外,也可以构建自己的镜像。
(三)阿里云Docker镜像仓库
1. 国内第一个提供Docker服务的云计算公司2. 2016年云栖大会宣布与Docker官方合作3. 提供Docker Images镜像加速4. 提供景象仓库5. 免费注册使用6. Docker Hub中国站与Docker Hub完全一致
(四)Docker分布式集群架构
Docker主要是方便开发和运维团队做大规模集群化部署。
(五)Docker容器常用命令
1. 搜索镜像:sudo docker search java2. 拉取镜像:sudo docker pull java3. 运行镜像:docker run4. 获取帮助:docker help5. 构建镜像:docker build6. 提交镜像:docker commit7. 新建镜像:docker create8. 运行镜像:docker run9. 重启镜像:docker restart10.查询全部:docker images11.查看信息:docker info12.推送镜像:docker push
DockerFile命令
Docker构建的早期需要DockerFile,就是Docker构建了一个命令文件。Docker基于这个文件构建镜像并且打包镜像。
1. Docker镜像配置文件2. 脚本编写3. 脚本文件4. 一系列命令和参数构成的脚本,5. 这些命令应用于基础镜像6. 并最终创建一个新的镜像
DockerFile重要指令
1. FROM 指定基础镜像文件
2. MAINTAINER authors_name 作者
3. RUN 运行特殊命令,比如下载JDK
4. SER命令用于设置运行容器的UID
5. VOLUME 指定容器访问目录
6. WORKDIR 运行目录
7. ENV 环境变量,如ENV LANG en_US.UTF-8
8. CMD 容器执行的命令 CMD "echo" "Hello docker!"
9. ADD 复制文件到目标文件夹
10.COPY 复制,类似ADD
11.EXPOSE 暴露端口
12.ENTRYPOINT 入口,命令,只有一个不能被Run覆盖
(六)Spring Boot 2.5 Docker制作镜像
环境需求
•docker (1.6.0 or above)
•jdk 1.8
•Maven 3.0+或者Gradle 2.3+
Spring Boot 2.4全新docker构建工具
•Spring Boot 2.4 推出了自己的 docker 构建工具
•一键构建Docker镜像,无需Dockerfile
•之前工具spotify 、fabric8,配置插件使用,需要Dockerfile
• jib-maven-plugin是Google18 年 7 月发布的Java 镜像工具(支持
Maven 和 Gradle),也无需Dockerfile
•整合在原有的 spring-boot-maven-plugin 中,
•只需要配置对应目标仓库和主机信息即可完成镜像构建。
•新命令:mvn spring-boot:build-image
(七)演示
Dockerfile制作镜像
•FROM java:8
•VOLUME /tmp
•ADD java-spring-boot-docker-0.1.0.jar app.jar
•RUN bash -c 'touch /app.jar'
•ENTRYPOINT ["java","Djava.security.egd=file:/dev/./urandom","jar","/app.jar"]
Build Docker Image with Maven
• <plugin>
• <groupId>com.spotify</groupId>
• <artifactId>docker-maven-plugin</artifactId>
• <version>0.2.3</version>
• <configuration>
• <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
• <dockerDirectory>src/main/docker</dockerDirectory>
• <resources> • <resource> • <targetPath>/</targetPath>
• <directory>${project.build.directory}</directory>
• <include>${project.build.finalName}.jar</include>
• </resource>
• </resources>
• </configuration>
• </plugin>
Maven打包
(八)高级面试题
1. Docker是什么?解决什么问题?
2. Docker的优势?
3. Swarm工具和Docker的关系
4. K8s优势是什么?
5. 如何安装Docker容器?
6. 如何制作、推送Docker镜像?
7. 如何搜索、拉取、启动Docker镜像?
8. Docker如何容器部署Spring Boot 2.5.x和微服务