Docker 构建 Java Web 开发环境(一)

Docker 构建 Java Web 开发环境(一)

使用 Docker 构建镜像的两种方法:

  1. 使用 docker commit 命令,直接在容器中操作(安装软件及配置文件等),比较简单直观;

  2. 使用docker build命令和 Dockerfile文件,可以模板化镜像构建过程,方便复用。

所以推荐使用第二种方法,但本文是用第一种方法,用第二种方法构建请看另一篇文章:Docker 构建 Java Web 开发环境——使用Dockerfile(二)
docker 的安装和简单使用请看另一篇文章:Mac 安装 Docker for Mac,下面直接开始使用。

准备工作

准备好 jdk8,tomcat8 的压缩包,放到本地的一个文件夹下,比如 /data/software

开始制作

可以到 docker hub 仓库中拉取centos镜像(这个仓库可能会比较慢,也可以到国内的一些提供镜像的仓库中获取,我是从公司的仓库中拉的),如何操作可以看 docker 安装那篇文章。

获得centos的镜像之后

docker images       //会列出本地已有的镜像

记住 centos 的 image id 比如说是 acc93762c23b(这里也可以不用 image id,也可以用项目名+版本号)
执行命令

docker run -it -v /data/software/:/data/software/ acc93762c23b /bin/bash

-i 表示以“交互模式”运行容器
-t 表示容器启动后会进入其命令行
-v 表示将本地目录挂载到容器中对应的目录
Mac 上在挂载目录时,要在 docker—>preference 设置中先添加要挂载的目录 /data/software ,否则貌似无法挂载

这样就运行并进入了容器中,下面的操作就和在普通的 cents 系统中安装软件一样了,到容器中的 /data/software目录下会看到本地系统的文件都已经挂载到了该目录下,安装配置jdk可以参考: Mac、CentOS jdk安装及配置

编写启动脚本

需要编写个启动脚本,当运行该容器时,运行脚本来初始化容器中的环境,就像上面运行容器的命令中的 /bin/bash 的作用一样
在容器中/data 目录下新建脚本 start.sh
脚本内容如下

source /etc/profile             //配置环境的位置,这个必须要
sh /usr/local/tomcat/bin/catalina.sh run  //自己安装的文件位置  
chmod u+x /data/start.sh       //为运行脚本添加执行权限

创建镜像

上面操作完后,用exit 命令退出容器

docker ps         //可以看出容器已关闭
docker ps -l       //显示上次运行的容器,并记下容器id(CONTAINER ID)

根据上面的容器 id 创建个新镜像:

docker commit 57c312bbaad1 liu/javaweb:1.0.0   //比如上个容器id是 57c312bbaad1 ,和git类似,可以加 -m “注释”

使用创建的镜像启动一个容器

docker image    //查看刚创建的镜像id (IMAGE ID)比如:25c5298b1a36 

docker run -d -p 8080:8080 --name javaweb 25c5298b1a36  /data/start.sh  //启动容器命令

-d 以“守护模式”运行容器,即容器在后台运行
-p 表示宿主机与容器的端口映射 (因此可以用宿主机的不同端口映射多个容器的8080端口,来做到独立运行多个 java web 应用)

回到宿主机,在浏览器中输入 http://local_ip:8080/ 看镜像是否制作成功

如果想进容器看看日志什么的,可以运行下面命令

docker exec -it 0234d150d48f /bin/bash  //0234d150d48f是正在运行的容器id 可以从 docker ps 中获得

运行本地应用程序,可以将本地 war 目录挂载到容器中 tomcat 的 webapps 目录下,可以参见Docker 构建 Java Web 开发环境——使用Dockerfile(二)

[参考]
使用Docker搭建Java Web运行环境

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一个开源的容器化平台,可以将应用程序和其依赖的环境打包在一个独立的容器中,并且能够快速部署和运行。对于Java项目来说,Docker部署具有以下可复用的优点: 1. 环境一致性:使用Docker可以确保在不同的环境中运行Java项目时拥有相同的运行环境,避免了由于环境差异带来的问题。不论是开发环境、测试环境还是生产环境,只需在Docker构建一次镜像,就可以在各个环境中使用。 2. 快速部署Docker允许将Java项目和其依赖的环境一同打包为一个镜像文件,将项目部署到其他服务器时只需在目标服务器上运行该镜像。无需手动安装配置Java运行环境和项目依赖,大大加快了项目的部署速度。 3. 模块化和可伸缩性:Docker支持将Java项目和其依赖的各个模块独立地打包为一个个容器,可以根据需求进行横向或纵向的扩展。例如,可以将数据库、应用服务器和Web服务器等模块分别打包为单独的容器,并通过Docker容器的连接功能组合起来,以实现Java项目的完整部署。 4. 简化运维:使用Docker可以简化Java项目的运维工作。通过将项目打包成镜像,可以方便地备份和恢复项目、进行扩容和调整资源配置,避免了直接管理各个服务器的复杂性。 总而言之,Docker的使用可以提高Java项目的部署效率和运维便利性,并且能够确保环境一致性,使项目的可复用性更高。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值