本文参考于 http://www.cnblogs.com/itech/p/5220122.html 进行的更改,更便于自己理解,刚开始不懂linux 脚本 ,不懂docker 的菜鸟,掉了很多坑 。终于慢慢的前进了一点 。
其它的就不多说了,记录下搭建的过程 。
1、准备工作
需要准备的:
1: linux ubuntu 系统(CentOS 也可以,对下面操作不会有影响);
2: 安装好了docker ,可以参考http://blog.csdn.net/u013092590/article/details/52861978
下载ubuntu 镜像 。安装好docker 后执行命令: docker pull ubuntu
2、下载jdk 、tomcat 到宿主机器
sudo su
mkdir /root/software
cd /root/software
#download jdk 1.7.67
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u67-b01/jdk-7u67-linux-x64.tar.gz
#download apache-tomcat-7.0.72
wget http://apache.fayea.com/tomcat/tomcat-7/v7.0.72/bin/apache-tomcat-7.0.72.tar.gz
3、启动容器
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态的容器重新启动。
这里我们基于ubuntu 镜像启动一个容器 :
docker run -i -t -v /root/software/:/mnt/software/ 88f7 /bin/bash
命令包含以下三个部分:
docker run <相关参数> <镜像 ID> <初始命令> 。
其中,相关参数包括:
-i:表示以“交互模式”运行容器 ;
-t:表示容器启动后会进入其命令行 ;
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录> ;
88f7 : ubuntu 镜像id (images id 全部写出来也行) 。
执行命令
cd /mnt/software/
ls
看到下面文件
jdk-7u67-linux-x64.tar.gz
apache-tomcat-7.0.72.tar.gz
4、容器种安装tomcat 、jdk
java web 环境,是需要jdk 和 tomcat .
4.1、 安装 jdk 、 tomcat
cd mnt/software
tar -xvf jdk-7u67-linux-x64.tar.gz
tar -xvf apache-tomcat-7.0.72.tar.gz
cd ../..
mv mnt/software/jdk1.7.0_67 /opt/jdk/
mv mnt/software/apache-tomcat-7.0.72 /opt/tomcat/
5、安装 vim
apt-get update
apt-get install vim
6 、编写运行脚本
编写运行脚本,当启动容器的时候,启动tomcat .
touch run.sh
vim /root/run.sh
脚本run.sh 的内容为 :
#!/bin/bash
export JAVA_HOME=/opt/jdk/
export PATH=$JAVA_HOME/bin:$PATH
sh /opt/tomcat/bin/catalina.sh run
脚本编写完后,添加运行权限
chmod u+x /root/run.sh
7、退出容器
执行exit 退出容器 。 查看当前所有容器
docker ps -a
显示
8、创建tomcat 镜像
根据上面的容器 id 创建tomcat 镜像 。
docker commit 02be mytomcat:1.0
65c88ec597e04812ec3b06b7749578bebcae3aa3d735b565ed25db6818d9d7f3
查看创建的镜像 :
docker images
9、启动tomcat
为了看效果 ,我们新建/root/webapps/ROOT/index.html ,内容如下 :
<html>
<body>
<h2>Hello World!h2>
body>
html>
然后运行启动命令 :
docker run -d -p 58080:8080 -v /root/webapps/:/opt/tomcat/webapps/ –name mytomcat_1 mytomcat:1.0 /root/run.sh
其中,相关参数包括:
-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
--name:表示容器名称,用一个有意义的名称命名即可。
tomcat 启动之后 ,在浏览器输入: http://宿主ip:58080 ,访问 ,界面显示
Hello World!
当然,这时候我们也可以把 java web 应用.war 放到 /root/webapps/目录下 ,停止容器在重启,就可以看到 java web 程序 ,但目前 还不能连数据库 。
说明几个问题 :
1 、 jdk 、tomcat 都是安装的容器中的 ,不是安装在宿主机器 。
2 、完全按步骤来是能搭建成功的 。