docker运行tomcat

一、下载一个Linux版本的jdk和tomcat解压到同一个目录下

       我解压到了/home/zzq/app目录


二、登录到Ubuntu(或者其他系统)容器中去配置

docker run -i -t -v /home/zzq/app/:/mnt/software/ 0ef2e08ed3fa /bin/bash
docker run <相关参数> <镜像 ID> <初始命令>

相关参数包括:
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

我现在把宿主机的/home/zzq/app目录挂载在Ubuntu上的/mnt/software目录下

JAVA_HOME=/opt/software/jdk1.7.0_80
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

将software拷贝到任意一个目录,我拷贝到了/opt下

root@0413329f71d3:/mnt# cp software/ /opt/
cp: omitting directory 'software/'
root@0413329f71d3:/mnt# cp -R software/ /opt/

接下来配置jdk的环境变量:

root@0413329f71d3:/opt/software# vi /etc/profile

加入

JAVA_HOME=/opt/software/jdk1.7.0_80
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

然后source /etc/profile测试下jdk是否安装成功

注意:可以没有vim,这是最小化的系统需要自己安装vim,请看这里http://blog.csdn.net/baidu_19473529/article/details/69857313

这个时候再写一个shell脚本


vi /opt/software/run.sh 
#!/bin/bash
source /etc/profile
sh /opt/software/apache-tomcat-7.0.76/bin/catalina.sh run



并给执行权限 chmod u+x /opt/software/run.sh

三、保存更改commit

这个时候就该保存对容器的更改了,commit请看这里http://blog.csdn.net/baidu_19473529/article/details/69857313


四、启动刚刚保存的容器

[zzq@weekend110 ~]$ docker run -d -p 58080:8080 --name javaweb3 0ef2e08ed3fa  /opt/software/run.sh
45131f0bedc97a67b3917858d747b94035c398f572602e5765d89ded8a2bbb61

稍作解释:


-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
--name:表示容器名称,用一个有意义的名称命名即可。
关于 Docker 网桥的内容,需要补充说明一下。实际上 Docker 在宿主机与容器之间,搭建了一座网络通信的桥梁,我们可通过宿主机 IP 地址与端口号来映射容器内部的 IP 地址与端口号,


在一系列参数后面的是“镜像名”或“镜像 ID”,怎么方便就怎么来。最后是“初始命令”,它是上面编写的运行脚本,里面封装了加载环境变量并启动 Tomcat 服务的命令。


当运行以上命令后,会立即输出一长串“容器 ID”,我们可通过docker ps命令来查看当前正在运行的容器。


[zzq@weekend110 ~]$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
45131f0bedc9        0ef2e08ed3fa        "/opt/software/run.sh"   24 minutes ago      Up 24 minutes       0.0.0.0:58080->8080/tcp   javaweb3


五、浏览器测试访问

http://<宿主机的ip>:58080/

我们就可以看到这熟悉的界面了


posted on 2017-04-09 19:11  愤怒的苹果ext  阅读(33)  评论(0编辑  收藏  举报

导航