Docker搭建Java Web环境(Centos6.8+JDK8+tomcat8)

一、在docker中pull centos

为了与原有的虚拟机区分开来,这里我们下载用centos6.8 64位的环境。

原有虚拟机环境:


利用docker查找一下centos镜像信息:


可以看到,在Docker中,可以pull的centos已经更新到最新的7.3版本了。

我们这里pull一下centos6.8。

相关命令:docker pull daocloud.io/library/centos:6.8 下载完毕后用docker images查看一下。

二、启动centos容器(容器是在镜像的基础上来运行的,一旦容器启动了,我们就可以登录到容器中)

使用以下命令即可启动容器:docker run -i -t -v /root/software/:/mnt/software/ 80e46367f846 /bin/bash

解释:

这条命令比较长,我们稍微分解一下,其实包含以下三个部分:docker run <相关参数> <镜像 ID> <初始命令>

其中,相关参数包括:

-i:表示以“交互模式”运行容器

-t:表示容器启动后会进入其命令行

-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

假设我们的所有安装程序都放在了宿主机的/root/software/目录下,现在需要将其挂载到容器的/mnt/software/目录下。

也就是说:/root/software/是本来虚拟机的真实目录,其对应的容器中的目录为:/mnt/software/。

那么虚拟机中/root/software/下存放的文件信息,到容器的/mnt/software/能对应的看到文件信息。

如图,/root/software/下有tomcat、jdk、nginx的文件:


我们在来看进入容器后,在容器的/mnt/software/目录下的文件信息:


查看容器中系统信息:


可以看到文件是一致的,系统是centos 6.8版本,但是容器中的系统时间有问题,导致二个图片上显示的信息有区别,这个无关紧要,继续~


三、安装配置jdk+tomcat

搭建java web环境,无非就是jdk+tomcat(也可以是其他,这里选用tomcat),并以opt目录作为安装目录。

之行创建/opt/jdk、/opt/tomcat目录

1.JDK:

命令:

tar -zxvf jdk-8u101-linux-x64.tar.gz

cd jdk1.8.0_101/

mv * /opt/jdk/

配置JDK环境:

vi ~/.bashrc

在最后加入以下信息:

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

最后用:source ~/.bashrc 命令重新加载一下,让环境变量生效。通过java -version可以检测一下。


2.tomcat:

相关命令:

tar -zxvf apache-tomcat-8.5.5.tar.gz

cd apache-tomcat-8.5.5

mv * /opt/tomcat/

可以通过启动/opt/tomcat/bin/startup.sh来测试启动。

3.编写java web容器运行脚本

需要编写一个运行脚本,当启动容器时,运行该脚本,启动 Tomcat,比如/root/run.sh作为启动文件,具体过程如下:

创建脚本:vi /root/run.sh

编辑脚本,将以下内容写进去后保存:

#!/bin/bash

source ~/.bashrc

sh /opt/tomcat/bin/catalina.sh run

可能会有童鞋会问,为啥不用startup.sh,其实startup.sh的源代码就是执行catalina.sh start的。

为运行脚本添加执行权限:

chmod u+x /root/run.sh

最后退出容器,用exit命令即可。


四、配置容器

docker ps查看正在运行的容器:


当退出容器后,则可以通过docker ps -a 来查询所有的容器:


容器ID为69e8f5dcba1b的是我们刚才创建的容器信息。

下一步,使用创建新镜像的命令,来根据某个“容器ID”来创建一个新的镜像,命令如下:

docker commit 69e8f5dcba1b mine/javaweb:1.0


自动返回一个序列ID,标识生成已经成功了,我们再通过docker images的命令来查看所有镜像。


此时,我们可以看到最新创建的镜像“mine/javaweb”,版本标签信息为1.0,镜像ID为:5e4e37068614

正如上面所描述的那样,我们可以通过“镜像名”或“镜像 ID”来启动容器,与上次启动容器不同的是,我们现在不再进入容器的命令行,而是直接启动容器内部的 Tomcat 服务。此时,需要使用以下命令:

docker run -d -p 58080:8080 --name smart smart/javaweb:0.1 /root/run.sh


不知道为什么刚才一边截图一边写,等到启动的时候,发现启动失败,于是又按照上面的配置过程,重新生成了下(换了个容器名字smart),步骤过程都没有变化,这次启动成功了。


镜像“smart/javaweb”,版本标签信息为0.1,镜像ID为:294d7142accc

通过58080端口访问tomcat,可以正常访问,如下:


参考资料:http://www.importnew.com/21798.html
转自:https://blog.csdn.net/smartdt/article/details/77530286

猜你喜欢

转载自blog.csdn.net/Alvin_Lam/article/details/85121591
今日推荐