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。