今天来给大家说下怎么将本地的springboot项目docker化并且上传到阿里云的docker镜像服务上。
ps:本章主要关注发布流程的实现,技术细节您可以在下列的网址中找到:
用 Docker 构建、运行、发布来一个 Spring Boot 应用
本文用的环境版本:
a) centos7
b) jdk1.8
c) docker 1.12.6
d) springboot 1.5.6.RELEASE
1.创建springboot项目
网上例子很多,这里不在介绍。我只有一个类:

同时提供了一个restful接口。同时代码托管到阿里云code(git),当然你的代码可以是在github,或者是其他托管平台中。这个地方进行托管是有作用的,下面将会提到。
2.集成docker
a) 修改pom.xml

b)创建 dockerfile 文件
在src/main 下创建文件夹dockerfile,并在该文件夹中创建Dockerfile文件,阿里云对这个配置没有强制要求,但最好还是按标准来。

具体命令解释,我这里就不在说了,具体请看文章开头提到的参考资料。
3、进入阿里云docker镜像中心
a)注册相应账号
b)设置镜像仓库

填写相关资料,自此你应该明白了,他是通过类似jenkins的方式自动扫描你的代码仓库
创建成功:

4.构建镜像
选择你创建镜像,点击构建。如果成功:

当然修改项目之后重新提交它也会自动构建,是不是很舒服。
5.获取镜像并运行
由于我的是私有镜像因此必须登录远程仓库才行,
登录命令:docker login --username=[username] [address]
a)未获取之前

b)获取之后

c)运行该docker镜像
docker run -p [port]:[port] -t [name]
你可以通过 docker ps 查看正在运行的docker镜像:

你还可以通过docker logs -f [name]来查看某个镜像的运行日志:

访问:

我这里是配置了域名和解析的 具体操作以后会另起文章详解。
可以看到我们要的结果出来了。
6.中间出现的问题
a) dockerfile路径
如果错误,构建时会出现:

b)add 错误:

这是因为
1.我们打包时是在target文件下,这是不会上传的。
2.docker扫描文件指定的是 src/main/dokcer因此你在打包后还需将target文件下的jar文件拷贝到docker下,并且提交至git仓库
再次构建即可成功。
总结:
a).通过阿里的相关服务我们可以完整的搭建一个基于springboot的docker化的微服务。阿里给我们提供了一整套的解决方案。本文主要是讲流程,具体的细节会在以后文章中详细介绍。
b).用到的docker命令:
1.docker stop [name] 停止
2.docker logs -f [name] 查看日志
3.docker ps 查看运行进程
4.docker images 查看镜像
5.docker run -p [port]:[port] -t [name] 运行进程
6.docker pull [address] 获取镜像
7.docker login --username=[name] [address] 登录镜像仓库
网友评论