docker(四)运行java程序

这篇具有很好参考价值的文章主要介绍了docker(四)运行java程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、运行简单的java程序

1、准备一个简单的java web程序,打成jar包之后上传到服务器上。
docker(四)运行java程序
2、创建Dockerfile文件

# 基于openjdk镜像
FROM openjdk:8

#定义环境变量
ARG MS_NAME=docker-demo
ENV JAVA_OPTS="-Xms512m -Xmx512m -Xmn200m -Xss512K"

#声明需要暴露的端口
EXPOSE 2001

#设置工作目录
WORKDIR /app/data/${MS_NAME}

# 复制文件到容器目录
ADD ${MS_NAME}*.jar .

#定义匿名数据卷
VOLUME ["/app/data/${MS_NAME}/logs"]

#配置容器启动后执行的命令
ENTRYPOINT java ${JAVA_OPTS} -Duser.timezone=GMT+8 -Dlog4j2.formatMsgNoLookups=true -XX:MetaspaceSize=256m   -XX:MaxMetaspaceSize=256m -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled  -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump/${MS_NAME}.dump -jar  ${MS_NAME}*.jar

以上命令涉及到宿主机的目录或者文件是相对dockerfile文件相对路径。
3、生成镜像
将jar包和Dockerfile文件上传到宿主机上,如下图:
docker(四)运行java程序
执行以下命令,生成镜像。

docker build -t demo-test .

其中demo-test代码镜像名称,.代表dockerfile文件所在目录在当前目录。
4、启动镜像
我这里拿我之前已经构建好的镜像为示例(方便自己记忆,同时方便后文讲解),如下图:
docker(四)运行java程序
上图的eureka等都是构建好的镜像,启动命令如下:

run -d -e PROFILE="dev" -p 2014:2014 --hostname ms-recognition-1 --name ms-recognition-1 --network test-net host:5000/library/ms-recognition:1.2.0

其中,PROFILE="dev"代表开发环境,2014:2014代码端口映射为2014,容器名称为ms-recognition-1。
在Docker中,默认情况下容器与容器、容器与外部宿主机的网络是隔离开来的。当你安装Docker的时候,docker会创建一个桥接器docker0,通过它才让容器与容器之间、与宿主机之间通信。
上面命令中的–network就是指定桥接网络,保证容器之间进行通信的。我们docker中的network 如下:
docker(四)运行java程序
5、日志查看
镜像启动之后,我们查看已经启动的容器:
docker(四)运行java程序
利用docker logs -f 93c70416fca7查看实时日志(这里就不截图了)。
至此,启动完成。

二、docker-maven-plugin插件使用

对于maven项目来说,除了上面的方法之外,还有一个插件的方法能够进行docker构建镜像和启动。
1、修改宿主机的docker配置,开放2375端口,让其可以远程访问

//修改配置文件
vi /lib/systemd/system/docker.service

修改内容如下:

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \

表示允许任何远程客户端通过 2375 端口连接 Docker Daemon。
重启:

systemctl daemon-reload		//加载docker守护线程
systemctl restart docker 	//重启docker

2、关闭防火墙
参考linux防火墙的操作。
3、修改pom.xml文件
新增如下配置:

<plugin>
                <groupId>io.fabric8</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.35.0</version>
                <executions>
                    <execution>
                        <id>docker-build</id>
                        <goals>
                            <goal>build</goal>
                        </goals>
                        <phase>package</phase>
                    </execution>
                    <execution>
                        <id>docker-push</id>
                        <goals>
                            <goal>push</goal>
                        </goals>
                        <phase>install</phase>
                    </execution>
                </executions>
                <configuration>
                    <!--指定远程 docker api地址-->
                    <dockerHost>http://XXX:2375</dockerHost>
                    <images>
                        <image>
                            <!--镜像名(含版本号)-->
                            <!--私有仓库地址和端口,再加上镜像id和TAG,我们要直接传到私服-->                 
                            <name>
                                XXX:5000/library/${project.name}:${project.version}
                            </name>
                            <!--registry地址,用于推送,拉取镜像-->
                            <registry>XXX</registry>
                            <!--指定远程 docker api地址-->
                            <build>
                                <dockerFile>${project.basedir}/Dockerfile</dockerFile>
                                <contextDir>${project.basedir}/target/package</contextDir>
                            </build>
                        </image>
                    </images>
                </configuration>
            </plugin>

4、打包和推送
docker(四)运行java程序
如图所示,先build,再push就能在docker镜像中构建。然后就是和简单java程序一样进行启动镜像进行使用了。文章来源地址https://www.toymoban.com/news/detail-432177.html

到了这里,关于docker(四)运行java程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker运行java程序的Dockerfile

    2024年01月18日
    浏览(27)
  • Java设计一个简单的计算器程序

    计算器是一种常见的工具,用于进行基本数学运算。在计算机科学中,我们可以使用编程语言来模拟和实现一个计算器程序。本文将基于Java语言,设计并实现一个简单的计算器程序。 1. 需求分析 在设计计算器程序之前,我们需要明确程序的需求。本文设计的计算器程序应满

    2024年02月05日
    浏览(43)
  • 如何使用 Java 设计一个简单的成绩计算程序

    本文将介绍如何使用 Java 设计一个简单的成绩计算程序。该程序可以读取学生的成绩并计算出平均分、最高分和最低分等。通过这个例子,我们将展示如何使用面向对象的思想和一些常用的 Java 功能来解决实际问题。 在开始编写程序之前,我们需要先分析问题。我们的目标是

    2024年02月04日
    浏览(40)
  • Java——一个简单的数学题目生成和回答的程序

    这段代码是一个简单的数学题目生成和回答的程序。具体分析如下: 导入必要的类: 代码中导入了用于输入输出的  java.io  包和生成随机数的  java.util.Random  类。这些类将在后面的代码中使用到。 定义主类和主方法: 代码中定义了一个名为  例229  的类,并在其中定义了

    2024年02月11日
    浏览(27)
  • Java生成微信小程序二维码,5种实现方式,一个比一个简单

    先介绍一下 项目场景 ,主要是通过微信小程序二维码 裂变分享 ,每个账号有专属邀请二维码,分享出去,有新人扫码入驻,就可以得到现金奖励或红包奖励。当然,产品设计会更丰富,不止有裂变模式,还有渠道推广模式,还有各种奖励规则,但核心实现都是生成二维码。

    2024年02月03日
    浏览(35)
  • idea2022版本下载安装配置与卸载详细步骤(包含运行第一个java程序教程)

    目录 前言必读 一、下载idea 先下载JDK  1.去浏览器搜索idea官网,找到官网  2.选择Download 3.点击左边的Download下载就好了 4.在本地磁盘建一个文件夹,专门用来存放idea软件的 二、安装idea  5.在本地磁盘中的下载里面找到下载的idea并双击打开 6.选择Next ​编辑 7.选择要安装的文

    2023年04月08日
    浏览(52)
  • idea2023版本下载安装配置与卸载详细步骤(包含运行第一个java程序教程)

    目录 前言必读 一、下载idea 先下载JDK  1.去浏览器搜索idea官网,找到官网  2.选择Download 3.点击左边的Download下载就好了 4.在本地磁盘建一个文件夹,专门用来存放idea软件的 二、安装idea  5.在本地磁盘中的下载里面找到下载的idea并双击打开 6.选择Next ​编辑 7.选择要安装的文

    2024年02月08日
    浏览(81)
  • mac-“准备安装时发生错误,请尝试重新运行此应用程序” + mac未能安装所需的固件更新

    参考链接:参考 u盘安装时候遇到问题: 安装系统时候报错 解决方案: 根据u盘系统上进行格式化磁盘,(我选择的是APFS),命名Macintosh HD 抹完之后选择急救下。 然后退出磁盘工具,点击重新安装系统就可以了 u盘制作参考: https://zhuanlan.zhihu.com/p/109582379 链接 mac未能安装所

    2024年02月04日
    浏览(56)
  • Spring是一个开源的Java开发框架,它提供了一种快速、简单的方式来开发企业级应用程序

    Spring是一个开源的Java开发框架,它提供了一种快速、简单的方式来开发企业级应用程序。Spring的主要优点包括简化Java EE开发、提供依赖注入和面向切面编程等功能。以下是Spring的一些核心特性: 依赖注入(DI):Spring通过DI机制,将对象的依赖关系注入到应用程序中,简化了

    2024年02月03日
    浏览(53)
  • Docker运行docker中指定一个jar

    在正在运行的一个docker容器中,容器的名字为 testimg,运行我们容器文件中我们放的一个jar包。例如:xiaobai.jar,并且在群晖的定时任务中,每分钟运行一次。 在群晖定时任务中运行指定容器的命令,那么我们的命令应该怎么写呢。 错误写法 java docker run --name testimg java -jar /h

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包