你喜欢的文本编辑器或者ide
jdk1.8或以上版本
maven3.0或以上版本
如果你不是在linux操作系统上面做开发,你需要docker-toolbox来构建linux的虚拟环境
下载并解压spring boot应用模板代码
<code>git clone https://github.com/spring-guides/gs-spring-boot-docker.git</code>
<code>cd gs-spring-boot-docker/complete</code>
编辑代码文件<code>src/main/java/hello/application.java</code>使之包含以下内容
<code>@springbootapplication</code>和<code>@restcontroller</code>注解表示java类application已经准备好被spring mvc所调用,并提供http服务。注解<code>@requestmapping("/")</code>表示context path "/"的请求路由到方法home中进行处理,main方法中的<code>springapplication.run()</code>用来启动一个spring boot应用。
首先需要构建一个docker镜像,通常使用dockerfile来描述一个docker镜像的构建过程。
一下是文件<code>src/main/docker/dockerfile</code>内容
使用docker-maven-plugin对docker 镜像进行构建,以下为需要修改pom.xml文件的部分
内容中指定了以下属性
镜像的名称,此处为<code>registry.aliyuncs.com/linhuatest/gs-spring-boot-docker</code>其中<code>registry.aliyuncs.com</code>是阿里云镜像仓库的域名,<code>linhuatest</code>是用户的命名空间,<code>gs-spring-boot-docker</code>是用户某个仓库的名称,此处没有镜像tag,默认tag为latest。
dockerfile文件所在的目录,该目录可以理解为dockerfile的context,保存dockerfile依赖的资源
将何种资源拷贝到dockerfile文件所在的目录,即context中,此处我们只需要编译出来的jar文件。
构建和推送镜像到阿里云镜像仓库,执行下列命令
在阿里云容器服务控制台,指定一个集群,点击<code>创建应用</code>
填写应用的描述信息,点击<code>使用镜像创建</code>
点击<code>选择镜像</code>,从镜像列表中检索到镜像仓库<code>gs-spring-boot-docker</code>,点击勾选,点击<code>确定</code>
spring boot应用默认暴露8080端口,填写端口映射中,容器暴露的端口为<code>8080</code>,此时其他容器可以通过对该容器的8080端口进行访问,但是服务还没有暴露到公网
添加<code>路由</code>的容器端口为<code>8080</code>,域名前缀为<code>spring-boot</code>,最终生成的域名将为<code>spring-boot.<cluster_id>.<region_id>.alicontainer.com</code>,该域名提供给用户测试域名服务。点击<code>创建并部署</code>将创建和部署应用。
应用成功创建和部署后,在服务列表中,找到服务<code>spring-boot-demo_spring-boot-demo</code>,点击进入服务详情页,<code>访问端点</code>即为该web服务对外暴露的网址。
访问网址 http://spring-boot.c1c5ce5e58dcb492784470da517890f5b.cn-beijing.alicontainer.com ,得到页面相应如下