使用docker部署一个jar项目

这篇具有很好参考价值的文章主要介绍了使用docker部署一个jar项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介:

通过docker镜像, docker可以在服务器上运行包含项目所需运行环境的docker容器, 在线仓库里有很多各个软件公司官方发布的镜像, 或者第三方的镜像. 如果我们需要使用docker把我们的应用程序打包成镜像, 别的机器上只要安装了docker, 就可以直接运行镜像, 而不需要再安装应用程序所需要的环境(比如 jre)了.

定制自己的镜像:

更新已有的镜像,再构建新的自定义镜像.

1. 使用docker pull 镜像名:版本从在线docker仓库中拉取一个镜像

docker pull ubuntu:18.04 ​ 使用docker images 可以看到你的镜像: (默认路径: /var/lib/docker/containers)

root@iZbp13tcf8gaqn21r6m8viZ:/var/lib/docker/containers# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
lifetrack           1.0                 881e666fc6b3        21 minutes ago      1.49GB
ubuntu_jdk          1.0                 42d9398e7f50        40 minutes ago      1.46GB
ubuntu              18.04               8e4ce0a6ce69        3 weeks ago         64.2MB
star7th/showdoc     latest              e169aaaa88e2        3 months ago        389MB

各个选项说明:

  • REPOSITORY:表示镜像的仓库源

  • TAG:镜像的标签

  • IMAGE ID:镜像ID

  • CREATED:镜像创建时间

  • SIZE:镜像大小

2.使用docker run -t -i -d 镜像名:版本 /bin/bash 来根据镜像运行一个容器</u>

参数说明:

  • -i: 交互式操作。

  • -t: 终端。

  • -d:在后台运行(加了这个 -i -t就没用了)

  • ubuntu:15.10: 这是指用 ubuntu 15.10 版本镜像为基础来启动容器。

  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

    如果在后台运行容器, 想进入容器有两种方法:

    1. docker attach 容器ID   : 退出时(exit)会停止容器
    1. docker exec -it 容器ID /bin/bash :退出时(exit)不会停止容器, 一般用这个

3. 修改容器

进入这个ubuntu容器后, 你可以自己安装你的应用所需要的运行环境, 比如我要安装

mysql: sudo apt-get install mysql

JDK: sudo apt-get install openjdk-8-jdk 以上在容器内操作, 退出输入: exit

4. 将容器提交为一个新镜像:

docker commit -m="has update" -a="qds" 容器ID 镜像名:版本号

5. 用包含运行环境的新镜像, 打包我们的应用程序为docker镜像

把我们的java程序的jar包, 放在一个新建空文件夹, 然后新建一个Dockerfile文件

编辑Docerfile文件:

   FROM 镜像名:版本号
   
   MAINTAINER 作者签名
​
   RUN 打包时运行的linux命令
​
   COPY [--chown=<user>:<group>] <源路径1>... <目标路径>
​
   CMD nohup java -jar xxxx.jar > xxx.log  2>&1 &```
​

FROM:定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 nginx。

RUN:用于执行后面跟着的命令行命令。有以下俩种格式:

shell 格式:

RUN <命令行命令>
# <命令行命令> 等同于,在终端操作的 shell 命令。

exec 格式:

RUN ["可执行文件", "参数1", "参数2"]
# 例如:
# RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline

COPY: 复制指令,从上下文目录中复制文件或者目录到容器里指定路径。

CMD: 类似于 RUN 指令,用于运行程序,但二者运行的时间点不同:

CMD 在docker run 时运行。
RUN 是在 docker build。
​
作用:为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束。CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖。
​
注意:如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效。
6. 根据Dockerfile文件构建包含应用程序的新镜像:

docker build -t runoob/centos:6.7 .

   runoob@runoob:~$ docker build -t runoob/centos:6.7 .
   Sending build context to Docker daemon 17.92 kB
   Step 1 : FROM centos:6.7
    ---&gt; d95b5ca17cc3
   Step 2 : MAINTAINER Fisher "fisher@sudops.com"
    ---&gt; Using cache
    ---&gt; 0c92299c6f03
   Step 3 : RUN /bin/echo 'root:123456' |chpasswd
    ---&gt; Using cache
    ---&gt; 0397ce2fbd0a
   Step 4 : RUN useradd runoob
   ......

参数说明:

  • -t :指定要创建的目标镜像名

  • . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

7. 使用 docker images 查看我们新建的镜像
8. 使用docker run -it 镜像名:版本 运行我们的镜像并访问其中的应用程序.
9. 这个镜像可以在其他安装了docker的设备上直接运行, 不需要提前装jdk等环境了.

 以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了

使用docker部署一个jar项目,软件测试工程师,docker,经验分享,docker,jar,容器,程序人生,软件测试工程师,经验分享,环境部署

使用docker部署一个jar项目,软件测试工程师,docker,经验分享,docker,jar,容器,程序人生,软件测试工程师,经验分享,环境部署

各位想获取资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~文章来源地址https://www.toymoban.com/news/detail-625839.html

到了这里,关于使用docker部署一个jar项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Docker部署(5)——使用docker run命令部署运行jar项目

           对于一些简单的单体项目,可以使用 docker run 命令可以直接在命令行中运行容器,无需事先构建镜像。这相较于之前使用的 dockerfile 文件来运行部署项目相当于是另外一种简单的部署方法,关于之前使用dockerfile 文件来运行部署这种方法,具体可以参考下面这篇文章

    2024年02月10日
    浏览(32)
  • 软件测试:测试一个网站

    1、软件测试应尽早执行,并贯穿于整个软件生命周期 2、软件测试应追溯需求 3、测试应由第三方来构造 4、穷举测试是不可能的,要遵循 Good-enough 原则 5、必须确定预期输出(或结果) 6、必须彻底检查每个测试结果 7、充分注意测试中的群集现象 8、缺陷的二八定理 9、严格执

    2024年02月01日
    浏览(30)
  • 【软件测试】学习笔记-设计一个“好的”测试用例

    本篇文章重点探讨如何才能设计出一个“好的”测试用例。 什么才是“好的”测试用例,这个“好”又应该体现在哪些方面。这是一个看似简单实则难以回答的问题,即使深入思考后,也很难有非常标准的答案。 通常,你的第一反应很可能会是“发现了软件缺陷的测试用例

    2024年01月20日
    浏览(40)
  • SpringBoot项目部署(Docker)——通过Dockerfile将打包好的jar包创建成镜像 & 在IDEA中配置docker,一键启动容器 & 用swagger进行测试

    1.Dockerfile命令初识,CMD…; 2.idea配置docker,图形化界面; 3.编写Dockerfile把jar包制作成镜像,并用idea一键生成和启动容器; 4.在Linux中测试,在宿主机用swagger进行测试; SpringBoot项目部署(jar包)——项目用maven打包成jar包 windows + Linux平台运行 Linux安装java 遇到的问题 Docker是一

    2024年02月05日
    浏览(38)
  • 软件测试基础篇——Docker

    1、docker技术概述 docker描述:docker是一项虚拟化的容器技术(类似于虚拟机),docker技术给使用者提供一个平台,在该平台上可以利用提供的容器,对每一个应用程序进行单独的封装隔离,每一个应用程序都有属于自己的运行和使用的空间,它们之间是互不影响,互不干扰的

    2024年02月13日
    浏览(25)
  • 【软件测试】面试老约不到?软件测试简历项目经验怎么写?论项目经验的重要性......

    随着就业竞争越来越大,投简历获取面试机会,不仅仅需要有良好的技能储备,更需要一份优秀的求职简历。什么样的简历才能通过层层筛选,获得HR的青睐? 项目经验绝对是重要的参考之一。 一份简历的项目经验有多重要? 不管是专业的HR还是技术专家,在筛选简历时都有

    2023年04月12日
    浏览(30)
  • 软件测试之项目实战,必须知道的事与测试面试项目测试流程......

    有一句话说得好:生活中并不缺少美,而是缺少发现美的眼睛。 项目经验? 其实要想自己拥有真实的项目经验,别无他法,唯一的办法就是去做。 只有自己亲自动手去做了,获取的经验才是自己的经验。 只是听别人讲,是没办法明白在项目中会遇到的各种问题的。 项目:

    2023年04月19日
    浏览(32)
  • 某软件的一个模块的需求规格说明书中描述【软件测试题目】

    某软件的一个模块的需求规格说明书中描述 (1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2% (2)非年薪制员工:严重过失,扣除当月薪资的8%;过失,扣除当月薪资的4% (1)分析原因及结果 原因 c1:年薪制员工 c2:非年薪制员工 c3:过失 c4:严重过失

    2024年02月08日
    浏览(33)
  • 软件测试项目篇

    了解项目背景 功能需求: 文件类型:支持所有的文件 压缩文件个数:最多压缩100个文件 压缩大小:不超过5G 性能需求: 压缩、解压缩文件不超过30分钟 安 全需求: 带有病毒感染的文件不能压缩 易用性需求 操作简单、方便 界面需求:布局、排版美观 兼容性需求: window

    2023年04月09日
    浏览(24)
  • 一个黑盒测试和白盒测试区别的软件测试面试题,错失15koffer

    软件测试是确保软件质量的重要环节,而在软件测试中,黑盒测试和白盒测试是两种常见的测试方法。跟小一起学习黑盒测试和白盒测试区别: 它们在测试的角度和目标上存在显著区别,本文将深入探讨这两种测试方法的定义、特点、应用场景以及区别,以帮助读者更好地理

    2024年02月05日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包