Docker基本概念与实践(四)-部署简单web项目(tomcat+war+mysql)

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: Docker简单部署web项目(tomcat+war包+mysql)先简单测试单独运行tomcat项目#启用tomcat8镜像命名为webapp,将容器的8080端口映射到主机的8080端口docker run -p 8080:8080 --...

Docker简单部署web项目(tomcat+war包+mysql)

先简单测试单独运行tomcat项目
#启用tomcat8镜像命名为webapp,将容器的8080端口映射到主机的8080端口
docker run -p 8080:8080 --name webapp -d tomcat:8
img_09792ca37f107d14f6dd68f619cc9d01.png
单纯启动tomcat
将项目放入tomcat运行
#进入刚刚用tomcat8镜像运行的容器,并关闭容器内tomcat服务,进入容器内的bin目录
docker exec -it webapp /bin/bash

#进入tomcat的bin目录 关闭
sh shutdown.sh 

#将宿主机的war包传到tomcat容器的webapp下 -> docker cp 本地文件路径 容器名/id:容器路径
docker cp /usr/local/war/linjw.war webapp:/usr/local/tomcat/webapps

docker start webapp
img_4eb60a5cd60f038404617b4687020554.png
将war包导入tomcat容器内
img_8168cd68ad1eebf0c179263d48c8a374.png
添加mysql镜像
#后台启动一个mysql5.7镜像 映射宿主机3308端口 设置密码garwer 如果本地无该镜像将从官方拉取
docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=garwer -e MYSQL_DATABASE=garwer mysql:5.7
【这种启动方式有个弊端,可以测试访问mysql成功后,在里面创建一张表退出,停止容器后再重启,数据就丢失了
正确的姿势是:挂载一个本地文件到容器,以此保证mysql容器数据的持久化(还可以根据需要mysql的配置文件,这边仅挂载数据) -v 前面为宿主机路径 后为容器路径
--privileged=true给容器加上特定权限 否则挂载的时候会报权限错误 宿主机会自动创建/usr/local/mysql-docker/data路径文件 这边因为因为外部占用我用3308 可自行调整端口
】
docker run -d -p 3308:3306 --name garwer-mysql --privileged=true -e MYSQL_ROOT_PASSWORD=garwer -e MYSQL_DATABASE=garwer -v /usr/local/mysql-docker/data:/var/lib/mysql mysql:5.7
 
#进入容器查看是否创建了garwer数据库 密码是否为garwer fcfdc2743ebe为我的容器id
docker exec -it fcfdc2743ebe /bin/bash

#登陆测试
mysql -uroot -p
img_458b3189d30c3fd0d6236512d65d266f.png
用mysql.5.7镜像运行mysql容器
img_074f0173f2be396ef733e629e224a4e2.png
进入容器测验
img_2daef839c28aaddd5745adda67093d08.png
测试访问
img_4590a58c4f81e46f9452f5d4cf3c9f78.png
挂载数据文件到本地测试
img_616e80f64d796c759254c7338b9cde5c.gif
访问成功
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
8月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
5月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
695 6
|
5月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
844 4
|
7月前
|
运维 数据可视化 C++
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
2025年热门Web化容器部署工具对比:Portainer与Websoft9。Portainer以轻量可视化管理见长,适合技术团队运维;Websoft9则提供一站式应用部署与容器管理,内置丰富开源模板,降低中小企业部署门槛。两者各有优势,助力企业提升容器化效率。
498 1
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
|
8月前
|
Java 应用服务中间件 Docker
java-web部署模式概述
本文总结了现代 Web 开发中 Spring Boot HTTP 接口服务的常见部署模式,包括 Servlet 与 Reactive 模型、内置与外置容器、物理机 / 容器 / 云环境部署及单体与微服务架构,帮助开发者根据实际场景选择合适的方案。
414 25
|
7月前
|
关系型数据库 MySQL 数据库
为什么 MySQL 不推荐用 Docker 部署?
本文探讨了MySQL是否适合容器化的问题,分析了Docker容器在数据安全、性能瓶颈、状态管理及资源隔离等方面的挑战,并指出目前主流分布式数据库如TDSQL和OceanBase仍倾向于部署在物理机或KVM上。
368 0
|
7月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
398 0
|
8月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
694 0
|
10月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
644 17
|
10月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
308 18