当前docker技术很受欢迎,对于快速部署来说 docker比起传统部署方式 有绝对的优势。作为一个java 后端开发人员docker技术是
必不可少的需要掌握的技能。该blog主要简单介绍一下如何使用docker部署springboot项目。 (linux环境:centos6.5,jkd1.8)
一、前提条件:
1.可以运行jar包的环境(springboot项目推荐jdk1.8以上)
2.机器上已经安装了docker(安装过程略)
3.准备部署的springboot的jar包
4.Dockerfile文件
二、准备Dockerfile 文件
前三条都很容准备,创建一个Dockerfile(在宿主机器任意位置)内容如下: vim Dokckerfile
FROM java:8
VOLUME /usr/local
ADD itcast-microservice-ftpuser.jar /ftp_test.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/ftp_test.jar"]
文件解释
1. from java:8 使用jdk8版本 (表示继承该镜像源,这在docker hub上是已经存在,本地已经pull下来的镜像)
2.volum /usr/local 可选配置 意思是 指定了临时文件目录为/usr/local
。其效果是在主机 /var/lib/docker
目录下创建了一个临时文件,并链接到容器的/usr/local
3.itcast-microservice-ftpuser.jar是使用jar包名称(打包好的jar包最好和Dokerfile文件放在同一目录下)
4.ADD itcast-microservice-ftpuser.jarr 拷贝jar到目标容器 并改名为 ftp_test.jar
5.ENTRYPOINT 执行jar文件
四、生成docker镜像
将Dockerfile和jar放在一个文件夹,使用下面命令生成镜像,注意最后的 . docker build 最后的 . 号,其实是在指定镜像构建过程中的上下文环境的当前目录!
docker build -t springboot_test .
注意:springboot_test是最终生成的镜像名称。
查看一下docker镜像
docker images
如图,可以看到已经有了一个名称为springboot_test的镜像
五、运行Docker容器
代码如下
docker run -d -p 8080:8080 springboot_test
参数解释:
1.-d 后台运行
2.-p 8080:8080 将docker容器的8080端口映射到宿主服务器上的8080端口上
3.springboot_test 项目名称
到这里就配置完成了,在浏览器使用:服务器ip:8080就能访问docker容器内部署的springboot项目了。
六、启动出现异常处理:
配置完 启动时出现了以下错误
原因是iptables 里没有docker相关的chain 导致无法正常启动.
解决方式:依次执行以下命令(另一种方式可在iptables文件里添加)
pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
然后重启 docker 服务: service docker restart即可
这时 输入 iptables -L
此时 docker chain 创建成功 ,在看看运行的容器 docker ps
此时 项目启动成功 在浏览器输入服务器ip:8080就能访问docker容器内部署的springboot项目了。