此篇博客一部分内容有赖于上一篇博客中已经陈述过的信息,如需了解,请移步:
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 是一个开源的应用容器引擎,基于 Go 语言开发并遵从 Apache2.0 协议开源。使用 Docker 可以让开发者封装他们的应用以及依赖包到一个可移植的容器中,然后发布到任意的 Linux 机器...
docker 安装操作说明文档,部署web应用; 使用docker运行gpu 镜像,共享宿主机 显存
下面将介绍如何使用 Docker 安装 Jenkins 部署 Java 服务。 1. 准备 Docker 环境 在安装 Docker 之前,需要清除之前的版本,然后添加 Docker 国内源,最后安装 Docker。Docker 要求 CentOS 系统的内核版本高于 ...
通过本文的介绍,读者已经掌握了Java Web应用开发与Docker容器化部署的基本流程。Docker通过容器化技术简化了应用的开发、部署和运行过程,极大地提高了开发效率和运维便捷性。希望读者能够在实际项目中灵活运用所学...
docker一键部署。lilishop是B2B2C多用户商城系统开发的JAVA
【标题】"基于Java的Docker图形化界面管理WEB应用"揭示了这个项目的核心内容,即使用Java技术来开发一个能够对Docker容器进行图形化管理的Web应用程序。Docker作为一个流行的容器化平台,允许开发者将应用及其依赖...
主要介绍了Docker学习笔记之Docker部署Java web系统,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
为了节约成本,很多时候一台server 的nginx可能要部署多个前端的情况,本实例是在docker环境下部署两个前端,同时处理前端调用后端跨域问题,本示例为阿里云centos7 系统docker20.10.6环境下nginx1.19.5版本 ...
在自动化部署流程中,Harbor 负责存储和管理 Docker 镜像,并提供了一个安全的环境来部署应用程序。 五、 自动化部署流程 自动化部署流程的主要步骤包括: 1. 代码提交:开发者将代码提交到 Gitllab 服务器上。 2...
"毕业设计--基于java的docker图形化界面管理WEB应用"这个标题揭示了项目的主题,它是一个学生毕业设计项目,旨在创建一个基于Java的Web应用程序,该程序提供了一个图形用户界面(GUI)来管理和操作Docker容器。...
docker自动部署dockerfile JDK、mysql、tomcat、java web项目
CentOS 6.7 安装 FastDFS Docker 部署 在本文中,我们将详细介绍 CentOS 6.7 下安装 FastDFS 文件服务器和 Docker 容器集群的过程。 1. 安装 JDK 1.8 在安装 FastDFS 之前,我们需要首先安装 JDK 1.8。在 CentOS ...
JAVA WEB 开发是计算机科学领域中的一个重要组成部分,它涉及到使用Java语言进行Web应用程序的构建。在本教学资料中,我们将深入探讨这一主题,为初学者和有经验的开发者提供宝贵的资源。 1. **基础概念** - **...
内容概要:本文详细介绍了在Linux环境下使用Docker部署多个常见应用程序的方法,主要包括Docker的基本安装流程,以及如何通过Docker容器快速搭建MySQL数据库服务器、配置Nginx反向代理和部署Java应用程序(JAR)。...
服务器配置和管理知识对于部署Java Web应用也至关重要。 7. 安全性知识:Java Web应用必须考虑安全问题,包括防止SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等。 8. 开发工具和环境:熟悉集成开发环境...
在信息技术领域,Docker 和 Nginx 加 Tomcat 架构是构建现代化 Web 应用和微服务应用的重要技术。以下详细知识点是根据给定文件中的标题、描述和部分内容提炼而成。 ### Docker 容器引擎 Docker 是一个开源的应用...
24. **第二十四章:Docker容器化** - Docker容器技术,用于部署和运行JAVA WEB应用。 25. **第二十五章:微服务架构** - 微服务思想,以及如何使用Spring Cloud构建分布式系统。 26. **第二十六章:持续集成/持续...
博客网站是基于最新的.NET 6开发的可跨平台Web应用,可以部署在Windows、Linux、docker等多种环境中,项目已运行在docker中。源代码中已包含MySQL和SqlServer数据库脚本