一、在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