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 条评论
登录 后参与评论

相关文章

来自专栏kangvcar

COBBLER极简教程

Cobbler 是一个 Linux 服务器安装的服务,可以通过网络启动 (PXE) 的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理 DHCP,DNS ...

1050
来自专栏bboysoul

esxi中的虚拟机安装vmware tools

说实在的这个很简单,我就是记录下,对于windows我就不说了,linux下不管有没有图形界面你都得去使用命令去安装这个东西所以我就介绍一下

991
来自专栏陈树义

Linux学习总结(十一)—— Linux常用命令:版本信息查看(RedHat、CentOS、Debian、Ubuntu、Fedora、Oracle)

这篇文章收集了CentOS、Oracle、RedHat等系统查看发行版本、内核版本、位数的方法,欢迎补充。 系统 发行版本 -- 内核版本、位数 ...

3235
来自专栏后台及大数据开发

docker:(1)docker基本命令使用及发布镜像

docker镜像可以完全看作一台全新的电脑使用,无论什么镜像都是对某一东西进行了配置,然后打包后可以快速移植到需要的地方直接使用

1012
来自专栏轻量级微服务

Kubernetes 环境搭建 - CentOS

三台 CentOS 7.4 服务器:kube1 、kube2 、kube3 ,配置:2 核 16G

781
来自专栏散尽浮华

Centos7修改默认网卡名(改为eth0)以及网卡启动报错RTNETLINK answers: File exists处理

安装好centos7版本的系统后,发现默认的网卡名字有点怪,为了便于管理,可以手动修改。下面对centos7版本下网卡重命名操作做一记录: 1)编辑网卡信息 [...

2079
来自专栏一个默默无闻的工程师的日常

kolla-mitaka-eol 部署openstack mitaka遇到的问题

实验需要使用 kolla 部署 openstack mitaka环境,由于是两年前的版本,实验过程中遇到了一些坑,记录如下。

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

如何在Debian 9上安装和使用Docker

Docker是一个简化容器中应用程序进程管理过程的应用程序。容器允许您在资源隔离的进程中运行应用程序。它们与虚拟机类似,但容器更便携,更加资源友好,并且更依赖于...

863
来自专栏后台及大数据开发

docker:(1)docker基本命令使用及发布镜像

docker镜像可以完全看作一台全新的电脑使用,无论什么镜像都是对某一东西进行了配置,然后打包后可以快速移植到需要的地方直接使用

892
来自专栏Java成神之路

Linux_异常_01_CentOS7无法ping 百度

当时设置的网关为:  GATEWAY=192.168.1.1    。是因为这个网关设置错了。这个网关的值要从虚拟机——编辑——虚拟网络编辑器下面去查看。如下图

671

扫码关注云+社区