docker启动Java程序

目录

  • 创建一个简单的Spring boot web项目
  • 以上一个简单web项目建好了,下面我们通过docker来运行这个demo项目
  • 展望

创建一个简单的Spring boot web项目

  • idea工具创建Spring boot web项目,因为是测试,一直next就行。



  • 写一个test API,用来访问,服务端口号可以不用改,我本地改成8701。
  • 程序启动,发现程序不是默认的8080端口了,访问:http://localhost:8701/v1/hello

以上一个简单web项目建好了,下面我们通过docker来运行这个demo项目

获取镜像,将镜像拉到本地
docker pull hub.c.163.com/housan993/centos7_jdk8:latest
  • 第三步,我们现将demo项目打个jar包,mvn install,为了方便我生成的jar直接从target中拿到项目根目录下了。
  • 第四步,我们在项目下编写一个Dockerfile文件,用来制作demo项目的镜像。
    dockerfile文件里的命令大家执行百度
dockerfile文件内容:
FROM hub.c.163.com/housan993/centos7_jdk8:latest
COPY demo-0.0.1-SNAPSHOT.jar /
CMD java -jar demo-0.0.1-SNAPSHOT.jar
编写好dockerfile文件后,我们通过docker命令来build一个镜像。docker命令会自动找当前目录下的
Dockerfile文件(默认的文件名要为Dockerfile),其次要指定目录路径 “.”表示当前目前
docker build -t demo-img .
看到如下日志,镜像就制作成功了。

  • 第五步,我们根据制作的镜像来启动我们程序的容器,并将端口(8701)映射到把本机的8701出来。
docker run -d -p 8701:8701 demo-image
run完之后我们会得到一长串字符,这就是容器的CONTAINER ID。我们docker ps一下看看

我们再看看容器启动的日志,看看我们的java程序有没有运行起来
docker logs [CONTAINER ID]

由容器的日志,我们发现和我们本地启动一个Java程序的日志一模一样,那么我通过映射出来的端口,再访问下demo程序看看,行不行。

  • 我们将demo容器停下,看我们还能访问不?
    stop容器命令:docker stop [CONTAINER ID]
    访问不了了。。。
  • 我们再把我们的demo容器启动
    docker start [CONTAINER ID]
    又可以访问了。至此,我们通过docker 跑java程序的简单使用已经完成。

展望

  • 上面只是docker 跑java程序的简单使用。我们后续有兴趣的,可以自己将打包,build等命令进行shell脚本的分装,对容器版本进行自动生成,参数变量的动态取值都是可以的。只能说容器话非常好玩,将来自己项目自动化部署也是非常方便的,后面将介绍k8s容器编排工具,更为有趣。

原文地址:https://www.cnblogs.com/levcon/p/12442662.html

时间: 2024-11-08 19:42:59

docker启动Java程序的相关文章

eclipse通过maven建立java se工程配置log4j,打包成zip,将jar包和配置文件分开,并以bat和sh文件启动java程序

一.新建maven的java工程 1.eclipse里file-new-other,选择maven Project 2.选中 Use default Workspace location,然后 next 3.选择maven-archetype-quitstart,然后next 4.填入工程信息,然后finish 6.新建好的工程结构如图 7.将test下和java下自动生成的java类删除,右键build-path选择好jdk版本,整个工程就建好了. 二.配置log4j 1.将工程目录调整成下图

利用脚本启动java程序

今天在工作中,需要写一个shell脚本,启动一个socket程序,从而模拟短信网关.查了一些资料,终于搞定了,现在记录一下,方便大家查阅. 为了说明使用方法,我们就用最简单的程序来实现,比如我们要运行下面这个类的main方法 package chb.cmd.test;import java.io.File;import java.io.IOException;import org.apache.log4j.Logger;public class TestClass {        static

如何在Android中启动JAVA程序

本人博客原文:http://hubingforever.blog.163.com/blog/static/17104057920126166411775/ 在Android中启动JAVA程序其实有很多种方式,现总结如下 一.在Android应用程序中发送Intent启动Android应用程序 这个方式最简单,最常用.在此不在累述.关于Intent的更多内容请阅读<Intent技术简介> 二.在shell控制台通过am命令发送Intent来启动Android应用程序 在Android的shell

java项目打成jar包并部署到Linux服务器,以及在shell脚本中启动java程序

一.在eclipse中,将java程序打成可运行的jar包 1.只需要把src目录和lib目录下的第三方jar打包即可 2.选中这两个位置后,一路"next",然后"finish",生成jar包 3.生成项目结构的zip包 然后,把项目打成zip包,注意只选需要的程序目录结构和配置文件夹即可 4.点击"finish",完成zip包的压缩 5.把生成的jar包和zip包上传到linux服务器的程序安装目录(根据项目组不同,程序安装目录会不同,但是一

bat 启动java程序

@echo offcd..cd..cd..set JAVA_HOME=%cd%\jdk150_06set CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jarset Path=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bincd testprojectjava -Djava.ext.dirs=WEB-INF\lib\ -cp WEB-INF\classes com.ufgov.bankServerTest.TestSoc

bat启动java程序,指定lib中jar及classpath

@echo off & setlocal enabledelayedexpansion set LIB_JARS="" cd ..\lib for %%i in (*) do set LIB_JARS=!LIB_JARS!;..\lib\%%i cd ..\bin if ""%1"" == ""debug"" goto debug if ""%1"" == &

linux下启动java程序的通用脚本2

一.start.sh #!/bin/bash cd `dirname $0` BIN_DIR=`pwd` cd .. DEPLOY_DIR=`pwd` CONF_DIR=$DEPLOY_DIR/conf SERVER_NAME=`sed '/server.name/!d;s/.*=//' conf/server.properties | tr -d '\r'` SERVER_PORT=`sed '/server.netty.port/!d;s/.*=//' conf/server.propert

java_linux_shell_定时kill 启动java程序

#!/bin/bash # Process_ID=`ps -ef |grep 'LoginSinaWeiboCookie.jar' |grep -v grep |awk '{print $2}'` Cookie_DIR=/home/chenpenghui/crawler/LoginSinaWeiboCookie kill -9 $Process_ID cd $Cookie_DIR java -jar LoginSinaWeiboCookie.jar -Xmx256M sleep 12h 12小时

Linux环境下,Shell脚本启动java程序

export JAVA_HOME=/home/upm/jdk1.8.0_111 export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar for i in lib/*.jar; do CLASSPATH=$i:${CLASSPATH} done export CLASSPATH=.:${CLASSPATH} java -cp ${CLASSPATH} com.richinfo.birtnotify.main.Mai