Docker搭建Javaweb运行环境

来源:互联网 发布:淘宝手机活动 编辑:程序博客网 时间:2024/05/12 18:07

参考文章:

使用 Docker 搭建 Java Web 运行环境

Docker实践(二):容器的管理(创建、查看、启动、终止、删除)

Docker学习之路(六)用commit命令创建镜像

前提先装好docker,安装docker请参考:

 Centos系统下docker安装

安装centos6容器

查找Docker Hub上的镜像

# docker search centos

 

拉取Docker Hub上的镜像

拉取centos6的镜像

#docker pull centos:6

下载完成后查看全部镜像列表

#docker images

 

查询centos6的镜像

#docker images centos:6

 

各个选项说明:

REPOSTITORY:表示镜像的仓库源

TAG:镜像的标签

IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如centos仓库源里,有6.0、7.0等多个不同的版本,我们使用 REPOSTITORY:TAG 来定义不同的镜像。

如果你不指定一个镜像的版本标签,例如你只使用 centosdocker 将默认使用 centos:latest 镜像。

启动centos容器

容器是在镜像的基础上来运行的,一旦容器启动了,我们就可以登录到容器中,安装自己所需的软件或应用程序。

只需使用以下命令即可启动容器:

#docker run <相关参数> <镜像 ID> <初始命令>

#docker run -i -t -v  /opt/software/:/mnt/software/ 7ea307891843 /bin/bash

#docker run -i -t -v  /opt/software/:/mnt/software/ centos:6 /bin/bash

其中,相关参数包括:

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

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

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

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

需要说明的是,不一定要使用“镜像 ID”,也可以使用“仓库名:标签名”,例如:centos:6

初始命令表示一旦容器启动,需要运行的命令,此时使用“/bin/bash”,表示什么也不做,只需进入命令行即可。

 

容器启动成功。

退出centos容器

交互型容器:运行在前台,容器中使用exit(Ctrl+d)命令或者调用docker stop<容器id>、docker kill<容器id>命令,容器停止。

后台型容器:运行在后台,创建后与终端无关,只有调用docker stop <容器id>、docker kill <容器id>命令才能使容器停止。

 

查看容器

#docker ps: 查看当前运行的容器

#docker ps -a:查看所有容器,包括停止的。

 

重新启动容器

#docker start <容器名,或者容器ID>

#docker start 889011df80a3

 

验证是否启动成功

#docker ps

 

进入容器中

#docker attach 容器ID或名

#docker exec -it  容器ID或名  bin/bash

 

安装jdk和tomcat

JDK/tomcat压缩安装包上传到宿主机,直接上传就行,放在宿主机目录/opt/software下:


安装 JDK

解压jdk

首先,进入到挂载的容器目录/mnt/software/,解压 JDK 程序包到opt/jdk。

#cd /opt

#mkdir jdk

#cd /mnt/software/

#tar -zxvf jdk7u79linuxx64.tar.gz -C /opt/jdk  

 

安装tomcat

解压tomcat

#cd /mnt/software

#tar -zxvf apache-tomcat-7.0.81.tar.gz -C  /usr/local

#cd /usr/local

 

tomcat目录名称改为tomcat7:

#mv  apache-tomcat-7.0.81/  tomcat7/

 

配置环境变量  

进入到文本编辑器中,配置环境变量:

#vim  /etc/profile

 

解決 vim: command not found

i. 那么如何安装vim 呢?

输入rpm -qa|grep vim 命令, 如果 vim 已经正确安裝,会返回下面的三行代码:

 

如果少了其中的某一条,比如 vim-enhanced 的,就用命令 yum -y install vim-enhanced 来安装:

#yum -y install vim-enhanced

配置jdk环境变量

修改配置文件

#vim  /etc/profile

文件末尾添加

export JAVA_HOME=/opt/jdk/jdk1.7.0_79

export PATH=$JAVA_HOME/bin:$PATH  

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 

然后Esc退出,:wq保存更改,并执行更改:

#source  /etc/profile

验证java是否安装成功

#java -version:

 

 

配置tomcat环境变量

修改tomcat配置文件

#cd  /usr/local/tomcat7/bin

#vim setclasspath.sh

添加如下内容:

export CATALINA_BASE=/usr/local/tomcat7

export CATALINA_HOME=/usr/local/tomcat7
export CATALINA_TMPDIR=/usr/local/tomcat7/temp

export JAVA_HOME=/opt/jdk/jdk1.7.0_79

export JRE_HOME=/opt/jdk/jdk1.7.0_79/jre   

 

启动tomcat

/usr/local/tomcat7/bin目录下启动服务器

#./startup.sh

 

配置容器启动环境变量

修改容器启动环境变量

#vi ~/.bashrc  

export JAVA_HOME=/opt/jdk/jdk1.7.0_79

export JRE_HOME=/opt/jdk/jdk1.7.0_79/jre   

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

 

执行更改

#source ~/.bashrc

编写运行脚本
我们需要编写一个运行脚本,当启动容器时,运行该脚本,启动 Tomcat,具体过程如下:
首先,创建运行脚本

#vim /root/run.sh

添加内容:

#!/bin/bash

source ~/.bashrc

sh /usr/local/tomcat7/bin/catalina.sh run

 

注意:这里必须先加载环境变量,然后使用 Tomcat 的运行脚本来启动 Tomcat 服务。

最后,为运行脚本添加执行权限:

#chmod u+x /root/run.sh

退出容器

当以上步骤全部完成后,可使用exit或ctrl+d命令,退出容器。

创建 Java Web 镜像

#docker commit <镜像id> <镜像名称>

#docker commit 889011df80a3 xu/javaweb:0.1

 

查看镜像

#docker images


启动镜像

#docker run -d -p 8080:8080 --name xu_javaweb 153adfdfe040 /root/run.sh

#docker run -d -p 58080:8080 --name xuning/javaweb:20170824 /root/run.sh

 -d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。  

-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 8080端口,这样就向外界暴露了 8080端口,可通过 docker 网桥来访问容器内部的 8080 端口了。  

--name:表示容器名称,用一个有意义的名称命名即可。

 

验证镜像是否启动成功

#docker ps:

 

在浏览器中,输入以下地址,即可访问 Tomcat 首页:

 

原创粉丝点击