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

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

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

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

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

docker load -i  centos-docker.tar

docker配置java环境(全手动方式)_第1张图片

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

docker配置java环境(全手动方式)_第2张图片

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:
docker配置java环境(全手动方式)_第3张图片
添加如下内容:

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

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

 ./startup.sh

docker配置java环境(全手动方式)_第4张图片
说明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保存退出文件。
docker配置java环境(全手动方式)_第5张图片
使得配置立马有效:

source ~/.bashrc

在这里插入图片描述

3.4.2、编写运行脚本

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

vi /root/run.sh

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

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

docker配置java环境(全手动方式)_第6张图片
**注意:**必须先加载环境变量,然后使用 tomcat 的运行脚本启动 Tomcat 服务。
为运行脚本添加执行权限:

chmod u+x /root/run.sh

在这里插入图片描述
以上步骤全部完成后,使用exit命令,退出容器。
在这里插入图片描述
查看正在运行的容器,如果容器还在运行,使用docker stop 命令停止运行容器:
docker配置java环境(全手动方式)_第7张图片

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 容器。
注意:存储库名称必须为小写。
创建完成查看镜像:
docker配置java环境(全手动方式)_第8张图片

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/
docker配置java环境(全手动方式)_第9张图片
**注意:**使用的是宿主机的 IP 地址,与对外暴露的端口号 8686,它映射容器内部的端口号 8080。

你可能感兴趣的:(docker,docker,tomcat,java)