`

Docker使用之Java web应用部署

阅读更多

此篇博客一部分内容有赖于上一篇博客中已经陈述过的信息,如需了解,请移步:

http://danlley.iteye.com/blog/2365651

 

切入正题,上一篇中介绍了如何在Docker中部署Tomcat,接下来将详细说明如何在Docker的Tomcat容器中部署war包。

 

通常情况下,一个web应用都脱不开数据库操作,这里我们以MySQL为例来说明一个web应用Docker、一个MySQL数据库Docker构成的最基本的应用实例

 

 首先获取MySQL的最新Docker:

docker pull daocloud.io/mysql:latest

下载后得到的image通过以下命令查看:

root@danlley-VirtualBox:/home/danlley# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
webapp1              latest              a32bca93f476        About an hour ago   538.1 MB
<none>               <none>              47512a4d6166        2 hours ago         538.1 MB
webapp               latest              abbbfb1f232d        12 hours ago        512.7 MB
daocloud.io/mysql    latest              7666f75adb6b        8 weeks ago         405.6 MB
daocloud.io/ubuntu   latest              f49eec89601e        9 weeks ago         129.5 MB

 

 接下来直接用镜像生成MySQL容器,并启动:

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=111111 7666f75adb6b

 注意:这里默认的docker是没有设定root用户的密码的,为方便后面对数据库docker进行管理,我们对root的密码进行了初始化,同时,如果你是计划将已经有的web应用迁移到docker的话,这里的端口号依然使用3306可以为你后面的工作省一些力气。

 

数据库docker启动成功以后,就需要对该数据库进行管理,根据自身的应用,导入数据库表及结构,给相应的数据库实例开管理账号等,这些都是和平时的做法没什么差别了。

 

至此,数据库的docker准备工作结束,接下来开始准备部署war包到Tomcat容器并进行应用调试。

 

docker的war包部署相对简单,将war包放在Dockerfile相应的同一个目录下(其中Tomcat、jdk等都放该路径),编写Dockerfile文件:

FROM                 daocloud.io/ubuntu:latest
MAINTAINER           danlley   email: danlley@126.com

# now add java and tomcat support in the container
ADD jdk-8u121-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.0.M18.tar.gz /usr/local/

# configuration of java and tomcat ENV
ENV JAVA_HOME /usr/local/jdk1.8.0_121
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.0.M18
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.0.M18

ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

# add war in webapps
ADD ./myteay-web.war /usr/local/apache-tomcat-9.0.0.M18/webapps


# container listener port
EXPOSE 8080

# startup wev application services by self
CMD /usr/local/apache-tomcat-9.0.0.M18/bin/catalina.sh run

 

 

 

 接下来通过Dockerfile构建webapp镜像

 

1、生成镜像:

root@danlley-VirtualBox:/home/danlley/dockerfiles# docker build .

 

 2、为生成的镜像打tag:

root@danlley-VirtualBox:/home/danlley/dockerfiles# docker tag abbbfb1f232d webapp

 

 3、启动镜像:

docker run -d -p 8090:8080 webap

 

 4、测试镜像部署结果,本地浏览器访问地址: http://192.168.56.102:8090

 

 至此,一个由docker构成的简单web应用搭建成功。

 

 

 

各位看官,原创不易啊,转载请注明出处: http://danlley.iteye.com 看在打字不易的份上,打赏一个吧

 

参考资料:

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    docker部署Java项目流程

    Docker 部署 Java 项目流程 Docker 是一个开源的应用容器引擎,基于 Go 语言开发并遵从 Apache2.0 协议开源。使用 Docker 可以让开发者封装他们的应用以及依赖包到一个可移植的容器中,然后发布到任意的 Linux 机器...

    docker 安装与部署,使用docker部署java 微服务, 使用docker运行gpu 镜像

    docker 安装操作说明文档,部署web应用; 使用docker运行gpu 镜像,共享宿主机 显存

    docker安装jenkins部署并且自动化打包部署java服务

    下面将介绍如何使用 Docker 安装 Jenkins 部署 Java 服务。 1. 准备 Docker 环境 在安装 Docker 之前,需要清除之前的版本,然后添加 Docker 国内源,最后安装 Docker。Docker 要求 CentOS 系统的内核版本高于 ...

    Java Web应用的容器化部署:Docker实战指南

    通过本文的介绍,读者已经掌握了Java Web应用开发与Docker容器化部署的基本流程。Docker通过容器化技术简化了应用的开发、部署和运行过程,极大地提高了开发效率和运维便捷性。希望读者能够在实际项目中灵活运用所学...

    docker一键部署。lilishop是B2B2C多用户商城系统开发的JAVA

    docker一键部署。lilishop是B2B2C多用户商城系统开发的JAVA

    基于java的docker图形化界面管理WEB应用.zip

    【标题】"基于Java的Docker图形化界面管理WEB应用"揭示了这个项目的核心内容,即使用Java技术来开发一个能够对Docker容器进行图形化管理的Web应用程序。Docker作为一个流行的容器化平台,允许开发者将应用及其依赖...

    Docker学习笔记之Docker部署Java web系统

    主要介绍了Docker学习笔记之Docker部署Java web系统,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    docker部署nginx,挂载多个前端部署目录以及跨域问题解决方案.txt

    为了节约成本,很多时候一台server 的nginx可能要部署多个前端的情况,本实例是在docker环境下部署两个前端,同时处理前端调用后端跨域问题,本示例为阿里云centos7 系统docker20.10.6环境下nginx1.19.5版本 ...

    Gitllab+Jenkins+Docker+Harbor 自动化部署流程

    在自动化部署流程中,Harbor 负责存储和管理 Docker 镜像,并提供了一个安全的环境来部署应用程序。 五、 自动化部署流程 自动化部署流程的主要步骤包括: 1. 代码提交:开发者将代码提交到 Gitllab 服务器上。 2...

    毕业设计--基于java的docker图形化界面管理WEB应用.zip

    "毕业设计--基于java的docker图形化界面管理WEB应用"这个标题揭示了项目的主题,它是一个学生毕业设计项目,旨在创建一个基于Java的Web应用程序,该程序提供了一个图形用户界面(GUI)来管理和操作Docker容器。...

    centos6.7安装fastdfs docker部署

    CentOS 6.7 安装 FastDFS Docker 部署 在本文中,我们将详细介绍 CentOS 6.7 下安装 FastDFS 文件服务器和 Docker 容器集群的过程。 1. 安装 JDK 1.8 在安装 FastDFS 之前,我们需要首先安装 JDK 1.8。在 CentOS ...

    JAVA WEB 开发教学资料

    JAVA WEB 开发是计算机科学领域中的一个重要组成部分,它涉及到使用Java语言进行Web应用程序的构建。在本教学资料中,我们将深入探讨这一主题,为初学者和有经验的开发者提供宝贵的资源。 1. **基础概念** - **...

    Linux环境下的Docker应用部署详解-MySQL、Nginx与Jar应用程序实例

    内容概要:本文详细介绍了在Linux环境下使用Docker部署多个常见应用程序的方法,主要包括Docker的基本安装流程,以及如何通过Docker容器快速搭建MySQL数据库服务器、配置Nginx反向代理和部署Java应用程序(JAR)。...

    《学通Java Web的24堂课》.(陈丹丹,卢瀚).[PDF]&ckook;

    服务器配置和管理知识对于部署Java Web应用也至关重要。 7. 安全性知识:Java Web应用必须考虑安全问题,包括防止SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等。 8. 开发工具和环境:熟悉集成开发环境...

    JAVA WEB开发源码

    24. **第二十四章:Docker容器化** - Docker容器技术,用于部署和运行JAVA WEB应用。 25. **第二十五章:微服务架构** - 微服务思想,以及如何使用Spring Cloud构建分布式系统。 26. **第二十六章:持续集成/持续...

    java web 当当网

    - **Tomcat/Jetty**: 应用服务器,部署Java Web应用。 9. **持续集成/持续部署(CI/CD)** - **Jenkins**: 自动化构建和部署工具,提高开发效率。 - **Docker**: 容器化部署,保证环境一致性。 本项目中的"Web24_...

Global site tag (gtag.js) - Google Analytics