分享好友 最新动态首页 最新动态分类 切换频道
Docker - 部署Java Web 项目
2024-12-26 20:12

前言

同事让研究一下,如何把我们公司自己的产品,部署到Docker中。后面如果换新的服务器,也方便项目的部署,而不用在新的服务器上重新搭建相关环境。
之前简单的了解过Docker。并且之前通过docker搭建gogs,也体会到了docker的强大和方便。这次,正好借这个机会,好好阅读一下官方文档,通过实践来更加熟悉docker!将我们的产品一步一步部署到docker中。

关于Docker

Docker有两个版本

社区版(CE
企业版(EE
Docker Community Edition(CE)非常适合希望开始使用Docker并尝试使用基于容器的应用程序的个人开发人员和小型团队。

Docker企业版(EE)专为企业开发和IT团队而设计,他们可以在生产中大规模构建,发布和运行业务关键型应用程序。

服务器环境

腾讯云服务器:Ubuntu Server 16.04.1 LTS 64位

安装Docker

传送门:Docker官网关于Ubuntu安装Docker CE – Get Docker CE for Ubuntu

这里我们安装(社区版)就好,功能够用了。

安装Docker可参考我的这篇博客 – ubuntu16.04下安装docker,其内容也来着于Docker官方文档。

相关命令

安装完成后,需要熟悉一下Docker的相关命令
1.查看docker相关信息

3.启动,停止docker

2.镜像和容器

3.启动容器
容器是在镜像的基础上来运行的,一旦容器启动了,我们就可以登录到容器中,安装自己所需的软件或应用程序。既然镜像已经下载到本地,那么如何才能启动容器呢

这条命令比较长,我们稍微分解一下,其实包含以下三个部分

docker run <相关参数> <镜像 ID> <初始命令>
其中,相关参数包括

-i :表示以“交互模式”运行容器
-t :表示容器启动后会进入其命令行
-v :表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
假设我们的所有安装程序都放在了宿主机的 /root/software/ 目录下,现在需要将其挂载到容器的 /mnt/software/ 目录下。

需要说明的是,不一定要使用“镜像 ID”,也可以使用“仓库名:标签名”,例如:docker.cn/docker/centos:centos6。

初始命令表示一旦容器启动,需要运行的命令,此时使用“/bin/bash”,表示什么也不做,只需进入命令行即可。

两种方法部署Java web

OK,准备工作完成后,开始搭建项目运行环境。
这里有两种方法来部署,一种是通过Dockerfile文件来进行自动构建,我们只需要编写该文件就可以。
一种是进入Docker容器中,自己安装软件和相关配置,在Docker容器中的具体操作跟平时在linux服务器上一模一样。

接下来就两种方法都演示一下。

方法一:进入Docker容器,手动部署

具体操作步骤可查看该篇博客:https://blog.csdn.net/jaryle/article/details/54894182

使用这种方法,我遇到了一个问题。在配置jdk1.8和maven的环境变量时,一旦我使用 命令,让环境变量生效,就会出现:命令找不到的情况。

只要我执行了 或者 。这个时候,我再去执行查看文件命令,就会提示我找不到该命令,这个时候,后面的工作就没办法进行下去了。暂时我还没找到原因。

这里我再提一下,网上搜索ubuntu jdk环境配置,有让修改 文件的,也有让修改 文件的。
其实任何一种都是可以的。
是系统全局环境变量设定
用户家目录下的私有环境变量设定

方法二:通过编写Dockerfile,自动构建

传送门:Docker官网关于Dockerfile的文档 – Dockerfile reference

下面是我为了搭建一个java web项目运行环境,简单编写的一个Dockerfile文件:包括

完整内容如下

用到了Docker的几个指令: 、 、 、 。

你需要做以下几个步骤
1.将上述文件保存为 注意大小写,没有后缀
2.然后进入到该文件所在目录,执行构建镜像命令

命令说明:xjc/java_web:v1 镜像的名字及tag, 最后的点代表当前目录
这个时候,他会一步一步去执行Dockerfile文件里面指定的命令,包括下载文件,配置环境变量等。
等该命令执行完,一个我们想要的镜像也就构建完成了。
3.查看image

第一个便是我们刚刚构建的镜像。
4. 到了这一步,只是搭好了java的运行环境,这个时候,我们还是需要进入到该容器中,配置一下其他的:比如使用git拉取代码,项目的脚本启动等。

Docker 其他命令

最新文章
门头沟将与百度、华为合作,共推京西人工智能产业发展
12月28日,门头沟区人民政府与百度智能云联合主办的“2023北京大模型产业暨数字经济发展论坛”成功举办。百度、华为、百图生科、瑞莱智慧等企业代表共话大模型与千行百业的深度融合。论坛上,门头沟区人民政府与百度智能云签署战略合作协议
网址批量缩短:方便快捷的链接管理工具
在如今信息爆炸的时代,网址的使用频率也随之增加。无论是在社交媒体平台分享链接,还是在电子邮件、信息传递等场景中使用,长串复杂的网址无疑会降低用户体验。为了解决这个问题,网址批量缩短工具应运而生。这些工具不仅可以简化网址,还
阿里智能设计实验室负责人乐乘:当设计遇上AI
在今年UCAN大会开场,阿里巴巴集团UED委员会委员长杨光发布的智能设计平台——鲁班,便出自乐乘的团队。此平台是通过人工智能算法和大量数据训练机器学习设计。通过一段时间的学习,此平台从去年“双十一”前就已经在阿里内部大规模投入使
高清美女写真生成攻略:用搜狐简单AI开启你的AI画女友之路!
访问工具: 打开微信,搜索小程序“搜狐简单AI”,点击进入。选择模板: 在首页选择“美女写真”模板,该页面会展示多个风格的选项供你选择。自定义设置: 选择你喜爱的风格后,你可以自定义角色的衣着、发型、面部特征等,尽量贴合你心目中的
达州通川区考研政治集训培训机构咨询热线:   在线咨询: 点击交谈
新闻标题:达州通川区学考研政治集训学校排名近期更新达州通川区考研政治集训培训机构是致力于为大学生群体提供学业与职业发展的翘楚机构。自2007年启动运营至今,凭借先进教育技术和优异培训效果,在研究生入学考试、大学生就业创业等教育
磁力全聚合
《磁力全聚合》是款功能强大的影视播放神器,这里汇集各种海内外影视资源,让你在这里体验到一站式的看片体验。软件界面简约清爽无广告,使用流程简单易上手,在这里力致给你全新的视觉盛宴。你还等什么?赶快下载体验吧。磁力全聚合是一款
Uptime Kuma:一款简单易用的监控工具
主要特点总览: - 支持超过十种监控方式,包括HTTP/HTTPS、TCP、Ping等,还包括Docker和中间件监控。 - 提供动态且响应迅速的用户界面,使用户能轻松管理监控任务。 - 集成了90多种通知服务,如Telegram、Di
据说媲美Portainer,一款国人开发的Docker可视化管理面板『DPanel』
哈喽小伙伴们好,我是Stark-C~根据作者自己的描述,它的主要功能为:全中文的界面,相比于 portainer 更友好完善的容器管理功能,提供域名转发,文件管理,日志监控等功能。轻松对容器内的文件进行管理。提供容器之间的关联功能,便于多个
深度解析,小红书权重提升秘诀,如何高效提高权重指数
1、坚持原创:原创内容是提升笔记权重的核心要素,平台会根据笔记的文字和图片原创度,给予相应的权重分数,原创度越高,权重分越高,从而提升笔记的曝光率和流量,若100字内的原创度低于60%,则几乎不会有权重,导致笔记受限流。2、删除笔
记一次wordpress加载慢的问题template-loader.php 被人植入后门
今天无意访问自己的网站,发现很慢  然后在几个主要文件打标记 index$go = 0; function data2($fg){     $fg = ''.$fg;    global $go;     $str = ++$go .$fg.'_'.date("Y-m-d h:i:
相关文章
推荐文章
发表评论
0评