标签:
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka
摘要:本文主要讲了如何在Ubuntu14.04 64位系统下来创建一个运行Java web应用程序的Docker容器。
1、下载镜像
先查看镜像
docker images
记住这个Image ID,下面我们启动容器需要用到它。
如果看到以上输出,说明您可以使用“oursuer/ubuntu”这个镜像了,或将其称为仓库(Repository),该镜像有一个名为“14.04”的标签(Tag),此外还有一个名为
1f879014f4d2 的镜像 ID(可能您所看到的镜像 ID 与此处的不一致,那是正常现象,因为这个数字是随机生成的)。此外,我们可以看到该镜像只有188.4 MB,非常小巧,而不像虚拟机的镜像文件那样庞大。
现在镜像已经有了,我们下面就需要使用该镜像,来启动容器。
2、启动容器
容器是在镜像的基础上来运行的,一旦容器启动了,我们就可以登录到容器中,安装自己所需的软件或应用程序。既然镜像已经下载到本地,那么如何才能启动容器呢?
只需使用以下命令即可启动容器:
docker run -i -t -v /download/:/mnt/software/ 1f879014f4d2 /bin/bash
docker run <相关参数> <镜像 ID> <初始命令>如果看到以上输出,说明您可以使用“docker.cn/docker/centos”这个镜像了,或将其称为仓库(Repository),该镜像有一个名为“centos6”的标签(Tag),此外还有一个名为“25c5298b1a36 ”的镜像 ID(可能您所看到的镜像 ID 与此处的不一致,那是正常现象,因为这个数字是随机生成的)。此外,我们可以看到该镜像只有 215.8 MB,非常小巧,而不像虚拟机的镜像文件那样庞大。
其中,相关参数包括: -i:表示以“交互模式”运行容器 -t:表示容器启动后会进入其命令行 -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
退出容器使用Ctrl+d或输入exit
如果退出容器后,可以再次使用命令(注意,得先运行docker run之后然后被stop掉的容器才可以使用如下命令)
docker start 容器ID
其中容器ID。使用命令docker ps -a来看,如下:
然后再次启动已启动过但现在是关闭的容器
docker start sick_mestorf这个命令只会启动容器,不会进入容器。要进入容器得用命令
docker attach 容器ID或容器名
如下:
首先先将JDK和tomcat的安装包.gz文件放在外面的/download文件夹下
然后再次启动容器。进入容器
然后看看是否有安装包。发现两个都在了,下面可以安装了
1、JDK安装
直接使用
cd /usr mkdir java cd java mkdir jdk cd /mnt/software/ tar zxvf jdk-8u65-linux-x64.gz -C /usr/java/jdk这里直接接文件解压到/usr/java/jdk目录,如下
配置环境变量
输入:
vi /etc/profile或
#set java environment export JAVA_HOME=/usr/java/jdk/jdk1.8.0_65 export JRE_HOME=/usr/java/jdk/jdk1.8.0_65/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
source /etc/profile验证安装:
java -version
如果出现如下内容,说明安装成功
2、tomcat安装
直接解压
cd /usr/java mkdir tomcat tar zxvf -C /usr/java/tomcat配置环境
打开
vi setclasspath.sh或
gedit setclasspath.sh添加如下内容:
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_65 export JRE_HOME=/usr/java/jdk/jdk1.8.0_65/jre
然后退回到bin目录下:
执行:
./startup.sh
或者使用如下命令查看:
(上面的JDK配置环境变量可以不要,但是这里的一定要写!!!!!!!!!!因为这里是设置容器启动时加载的环境变量)
1、设置环境变量
首先,编辑.bashrc文件
vi ~/.bashrc然后,在该文件末尾添加如下配置:
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_65 export JRE_HOME=/usr/java/jdk/jdk1.8.0_65/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH最后,需要使用source命令,让环境变量生效:
source ~/.bashrc
我们需要编写一个运行脚本,当启动容器时,运行该脚本,启动 Tomcat,具体过程如下:
首先,创建运行脚本:
vi /root/run.sh然后,编辑脚本内容如下:
#!/bin/bash source ~/.bashrc sh /usr/java/tomcat/apache-tomcat-7.0.68/bin/catalina.sh run注意:这里必须先加载环境变量,然后使用 Tomcat 的运行脚本来启动 Tomcat 服务。
chmod u+x /root/run.sh
记住以上CONTAINER ID(容器 ID),随后我们将通过该容器,创建一个可运行 Java Web 的镜像。
docker commit 89a47b5b749e lin_javaweb:0.1该容器的 ID 是“89a47b5b749e”,所创建的镜像名是“lin_javaweb:0.1”,随后可使用镜像来启动 Java Web 容器。
这是创建成功后
同样可以查看下镜像
docker run -d -p 58080:8080 --name javaweb lin_javaweb:0.1 /root/run.sh稍作解释:
-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。 -p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。 --name:表示容器名称,用一个有意义的名称命名即可。
在浏览器中,输入以下地址,即可访问 Tomcat 首页:
http://127.0.0.1:58080/
或者
http://localhost:58080/
注意:这里使用的是宿主机的 IP 地址,与对外暴露的端口号 58080,它映射容器内部的端口号 8080。
标签:
原文地址:http://blog.csdn.net/evankaka/article/details/50722788