如果你已经熟悉Docker的基本使用,可以直接从第7小节阅读,直接看Spring boot实战Docker的部分内容。
Docker 提供了两个版本:社区版 (CE) 和企业版 (EE)。
Docker 社区版 (CE) 是开发人员和小型团队开始使用 Docker 并尝试使用基于容器的应用的理想之选。
Docker CE 有两个更新渠道,即 stable 和 edge:
Stable 每个季度提供可靠更新;
Edge 每个月提供新功能更新。一般我们选择stable可以了,本文实战选择也是。
在2016年10月13日,杭州·云栖大会上,Docker与阿里云宣布达成战略合作,Docker的中国镜像仓库由阿里巴巴提供,国内开发者可以免费使用。
今天我们的演示也使用阿里云Docker仓库。我们选择的是Linux Ubuntu 16.04系统。
1、安装首先安装传输加密组件,然后来下载docker
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
2: 安装阿里云docker 安全协议GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
3: 仓库写入软件源信息,选择stable版本
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
4: 更新资源列表,安装新版本Docker-CE,社区版本。
sudo apt-get -y update
sudo apt-get -y install docker-ce
5、检查Docker版本,是否成功安装
输入docker version命令,可以查看安装的Docker版本信息。
6、运行Docker Hello World
最简单的例子就是 Hello world,docker会从服务器拉去hello world镜像,并且在本地运行。
sudo docker run hello-world
Docker安装成功,并且可以执行最简单的镜像,入门例子。下面开始安装特殊的镜像,Mongodb作为例子。
7、Docker制作java Spring Boot 镜像
新建Java Spring Boot项目,这里需要解除Maven自动构建Docker镜像,使用辅助插件。在项目里配置POM。
推荐使用Linux 或者Mac OS可以安装docker,因为Maven构建Docker镜像需要Docker服务器支持。
<!-- tag::plugin[] -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.9</version>
<configuration>
<repository>${docker.image.prefix}/${project.artifactId}</repository>
</configuration>
</plugin>
插件的XML配置
<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>
创建重要的Dockerfile文件,用于打包镜像。基本是程序的主要运行参数信息。以及我们的java Spring Boot的Jar包。
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG DEPENDENCY=target/dependency
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY ${DEPENDENCY}/META-INF /app/META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-cp","app:app/lib/*","hello.Application"]
Java Spring Boot 集成Docker插件的项目结构:
执行命令mvn install dockerfile:build。
构建并生成Docker镜像文件,可以选择上传到DockerHub服务器。
8、Docker搜索Spring Boot镜像
我们也可以选择去Docker Hub拉去通用的镜像,比如MySQL、MongoDB、Redis、MQ等,
使用Docker Search 关键字 即可,然后可以选择拉去需要的镜像,节约时间。
9、Docker拉去 Spring Boot 镜像
在命令中输入sudo docker pull springio/gs-spring-boot-docker 等待下载。
10.Docker运行Spring Boot应用
下载完毕以后,我们就可以技术来使用Docker运行我们的Spring Boot应用。使用命令:
sudo docker run -p 8080:8080 -t springio/gs-spring-boot-docker
如果没有错误,应该正常启动,端口是8080,我们这里访问http://localhost:8080/hello 可以看到简单的字符串 Hello Docker。
基本就完成了,大量的运维、部署工作可以通过Docker来完成,尤其是大规模集群,几百、上前台服务的情况。Docker简化的配置、统一部署的工作。
使用起来十分方便,除了我们自己特殊的应用打包,绝大部分的数据库、中间件等都有官方的Docker镜像。
参考:
http://maven.apache.org/install.html
https://github.com/spring-guides/gs-spring-boot-docker
《第17课:Spring Boot 2.0实战Docker容器与架构原理》资料:
视频: https://yq.aliyun.com/live/880
PPT:https://yq.aliyun.com/live/880
阿里巴巴Java群超过3000人
直播地址:Java技术进阶群
进群方式:钉钉扫码入群
阿里巴巴MongoDB群