docker配置java环境(全手动方式)

1、docker下载centos镜像(用作配置jdk环境系统)

如果docker安装的服务器有网络,可以使用下面的命令拉取centos镜像:

docker pull centos  #版本号可以自己加,默认拉取最新的

本文使用离线下载好的centos镜像,将镜像文件放到对应目录,加载镜像:

docker load -i  centos-docker.tar

在这里插入图片描述

2、创建容器

容器是基于镜像创建的,执行镜像生成容器,方可进入容器
启动容器命令: docker run <相关参数> <镜像 ID> <初始命令>

docker run -i -t -v /usr/local/work/:/mnt/software/ b36870be5ede /bin/bash

参数解析:
  -i:表示以“交互模式”运行容器
  -t:表示容器启动后会进入其命令行
  -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
  /bin/bash:一旦容器启动,需要执行的命令,当前使用 “/bin/bash”, 表示启动后直接进bash shell
  /usr/local/work/是宿主机器(Linux)上创建的一个文件夹;
  /mnt/software是centos的容器里面的目录文件
  这里挂载的意思就是 b36870be5ede 创建的容器访问 /mnt/software/ 目录下的文件就相当于访问 宿主机的 /usr/local/work/下的文件,且两者文件夹里内容相同。
在这里插入图片描述
因为使用了/bin/bash,启动后默认进入了容器:
在这里插入图片描述

ctrl+d 或者 直接输入 exit

在这里插入图片描述

3、容器内部安装tomcat+jdk1.8

3.1、再次进去容器
docker exec -it [容器ID] bash

在这里插入图片描述
下载好 tomcat和jdk的 tar包,上传到宿主服务器的/usr/local/work/文件夹下,因为前面做了目录挂载,所以进入docker容器里的/mnt/software/文件夹下也是可以看到宿主机上传的文件:
在这里插入图片描述

3.2、安装JDK
#解压文件
tar -zxvf jdk-8u211-linux-x64.tar.gz 
#将解压的文件移到新目录
mv jdk1.8.0_211/ /opt/jdk
3.2.1、设置java 环境变量,配置profile

打开配置文件后,按enter或insert(i)键切换到输入状态,按向下箭头一直滚动到文件末尾,加入配置环境变量:

export JAVA_HOME=/opt/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
export PATH=$PATH:$JAVA_HOME/bin

然后按ESC退出编辑,按Shift+:wq保存退出文件。
使得配置立马有效:

source /etc/profile

查看jdk版本号:

java -version

在这里插入图片描述

3.3、安装TOMCAT
#解压文件
tar -zxvf apache-tomcat-8.5.42.tar.gz
#将解压的文件移到新目录
mv apache-tomcat-8.5.42 /opt/tomcat
3.3.1、配置环境

进入到上面的tomcat的bin文件夹下,打开setclasspath.sh:
在这里插入图片描述
添加如下内容:

export JAVA_HOME=/op/jdk
export JRE_HOME=/opt/jdk/jre 

在这里插入图片描述
保存即可。
执行启动命令:

 ./startup.sh

在这里插入图片描述
说明tomcat启动成功。
也可以查看tomcat进程是否在运行:
在这里插入图片描述

3.4、配置容器启动环境变量
3.4.1、设置环境变量

首先,编辑.bashrc文件:

vi ~/.bashrc

添加如下内容:

export JAVA_HOME=/opt/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
export PATH=$PATH:$JAVA_HOME/bin

然后按ESC退出编辑,按Shift+:wq保存退出文件。
在这里插入图片描述
使得配置立马有效:

source ~/.bashrc

在这里插入图片描述

3.4.2、编写运行脚本

编写一个运行脚本,当启动容器时,运行该脚本,启动 Tomcat,如下图:

vi /root/run.sh

在这里插入图片描述
添加如下内容:

#!/bin/bash
source ~/.bashrc
sh /opt/tomcat/bin/catalina.sh run

在这里插入图片描述
**注意:**必须先加载环境变量,然后使用 tomcat 的运行脚本启动 Tomcat 服务。
为运行脚本添加执行权限:

chmod u+x /root/run.sh

在这里插入图片描述
以上步骤全部完成后,使用exit命令,退出容器。
在这里插入图片描述
查看正在运行的容器,如果容器还在运行,使用docker stop 命令停止运行容器:
在这里插入图片描述

4、创建Java Web镜像

4.1、创建镜像

使用以下命令,根据某个“容器 ID”来创建一个新的“镜像”:
docker commit <容器ID> huangyong/javaweb:0.1

docker commit 2e248d97a1d1 Alinlx/javaweb:0.1

在这里插入图片描述
该容器的 ID 是“2e248d97a1d1”,所创建的镜像名是“alinlx/javaweb:0.1”,随后可使用镜像来启动 Java Web 容器。
注意:存储库名称必须为小写。
创建完成查看镜像:
在这里插入图片描述

4.2、创建容器

启动 Java Web 容器,根据前面环境配置,不用再进入容器的命令行,而是直接启动容器内部的 tomcat 服务。使用以下命令:

docker run -d -p 8686:8080 --name javaweb0.1 alinlx/javaweb:0.1 /root/run.sh

参数解析:
-d:表示以“守护模式”执行/root/run.sh脚本,tomcat 控制台不会出现在输出终端上。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 8686 端口,这样就向外界暴露了 8686 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
–name:表示容器名称,用一个有意义的名称命名即可。
启动成功,通过docker ps命令来查看当前正在运行的容器:
在这里插入图片描述

4.3、测试

浏览器中,输入以下地址,即可访问 Tomcat 首页:http://127.0.0.1:8686/
在这里插入图片描述
**注意:**使用的是宿主机的 IP 地址,与对外暴露的端口号 8686,它映射容器内部的端口号 8080。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

Alinlx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值