Spring boot with Docker

本文节选自 《Netkiller Linux 手札》

163.6.1. Spring boot with Docker

163.6.1.1. 获取 CentOS 7 镜像

docker pull centos:7

		# docker pull centos:7
7: Pulling from library/centos
343b09361036: Pull complete 
Digest: sha256:bba1de7c9d900a898e3cadbae040dfe8a633c06bc104a0df76ae24483e03c077
Status: Downloaded newer image for centos:7		

基于 CentOS 7 运行一个容器

docker run -it --name mycentos docker.io/centos:7 /bin/bash

		# docker run -it --name mycentos docker.io/centos:7 /bin/bash		

运行后直接进入了容器的shell控制台默认是bash

163.6.1.2. 安装 openjdk

		# yum install -y java-1.8.0-openjdk

# cat >> /etc/profile.d/java.sh <<'EOF'
export JAVA_HOME=/usr/java/default
export JAVA_OPTS="-server -Xms2048m -Xmx4096m -Djava.io.tmpdir=/tmp -Djava.security.egd=file:/dev/./urandom -Dfile.encoding=UTF8 -Duser.timezone=GMT+08"
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:.
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:
EOF

# source /etc/profile.d/java.sh		

检查Java是否安装成功

		# whereis java
java: /usr/bin/java /usr/lib/java /etc/java /usr/share/java /usr/share/man/man1/java.1.gz

# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)		

创建应用程序目录

# mkdir -p /www/netkiller.cn/www.netkiller.cn/		

推出当前容器

# exit		

163.6.1.3. Spring boot 包

复制 jar 文件到Docker容器

		docker cp /www/netkiller.cn/www.netkiller.cn/www.netkiller.cn-0.0.1.war mycentos:/usr/local/libexec		

163.6.1.4. 启动 Spring boot 项目

启动容器

		# docker start mycentos
mycentos		

进入容器

		# docker exec -it mycentos /bin/bash		

如果仅仅是测试可以手动启动 Srping boot 项目

		# cat >> /root/run.sh <<EOF
java -server -Xms2048m -Xmx8192m -jar /usr/local/libexec/www.netkiller.cn-0.0.1.war
EOF

chmod u+x /root/run.sh		

生产环境请使用启动脚本

				# curl -s https://raw.githubusercontent.com/oscm/build/master/Application/Spring/service/springbootd -o /etc/init.d/springbootd
# chmod +x /etc/init.d/springbootd		

编辑启动脚本 /etc/init.d/springbootd 修改下面配置项

		##############################################
BASEDIR="/www/netkiller.cn/api.netkiller.cn"
JAVA_HOME=/srv/java
JAVA_OPTS="-server -Xms2048m -Xmx8192m -Djava.security.egd=file:/dev/./urandom"
PACKAGE="api.netkiller.cn-0.0.2-release.jar"
CONFIG="--spring.config.location=$BASEDIR/application.properties"
USER=www
##############################################
NAME=springbootd
PROG="$JAVA_HOME/bin/java $JAVA_OPTS -jar $BASEDIR/$PACKAGE $CONFIG"
LOGFILE=/var/tmp/$NAME.log
PIDFILE=/var/tmp/$NAME.pid
ACCESS_LOG=/var/tmp/$NAME.access.log
##############################################		

你也可以使用 systemd 启动脚本,详见《Netkiller Java 手札》

163.6.1.5. 基于 CentOS 7 制作 spring 镜像

docker commit mycentos springboot:1

		# docker commit mycentos springboot:1
sha256:757d92d642d1b5a7b244f6ddf89f24a8d463d154438651c83ba51a644b401782		

启动 spring boot 容器

		# docker run -d --name springboot -p 80:8080 springboot:1 /root/run.sh		
		-d: 以守护进程方式启动 
--name:指定容器的名称 
-p:映射容器8080端口到宿主机的80端口 
springboot:1 :上一步制作好的springboot镜像,版本号为1	

启动容器

		# docker start springboot		

停止容器

		# docker stop springboot

原文发布于微信公众号 - Netkiller(netkiller-ebook)

原文发表时间:2017-05-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏纯洁的微笑

Spring Boot 2.0(四):使用 Docker 部署 Spring Boot

Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。 首先构建一...

4694
来自专栏轻量级微服务

Docker Config 管理 Spring Boot 应用配置

使用 ENTRYPOINT ,可在 Docker 命令后面添加额外参数, 比如 --server.port=8888 等等

1164
来自专栏云计算教程系列

在你的电脑上运行Kubernetes

Kubernetes 是编配平台的首选。在开发过程中,您不妨在个人电脑上运行 Kubernetes,以便在本地启动和调试应用程序。本文提供了两种在 Mac OS...

1722
来自专栏bboysoul

记载一次删除mysql的默认数据库mysql的过程

今天终于尝到了什么叫删库跑路,妈的真的悲剧,早上想在树莓派里安装个wordpress,想放点街舞视频给大家分享一下,突然发现数据库里面还有一个以前的论坛数据库,...

763
来自专栏云计算教程系列

如何在Ubuntu上使用Traefik作为Docker容器的反向代理

Docker是在生产中运行Web应用程序的有效方法,但您可能希望在同一个Docker主机上运行多个应用程序。在这种情况下,如果只有端口80和443可用,您需要设...

2204
来自专栏散尽浮华

记录一次redis cluster集群故障-运维笔记

公司的一个系统业务出现故障,提示查询redis失败。查询相关日志,分析过程记录如下:

1925
来自专栏雨过天晴

原 加速Docker镜像编译之更换软件源

2532
来自专栏叔叔的博客

Docker部署cloud

1245
来自专栏运维前线

通过Docker在20分钟内将Spring Boot应用程序部署到Bluemix

我真的想了解更多关于Spring框架的Java框架 。Spring技术使构建企业应用程序变得简单而且有趣。所以我开始了一个简单的教程,并将该Spring应用程...

2105
来自专栏小狼的世界

kubeadm安装kubernetes V1.11.1 集群

如果想要用二进制方法安装最新版本的Docker,可以参考我之前的文章在Redhat 7.3中采用离线方式安装Docker

6971

扫码关注云+社区