centos7下docker 部署javaweb

时间:2022-08-27 21:48:12

LXC

linux container

百度百科:http://baike.baidu.com/link?url=w_Xy56MN9infb0hfYObib4PlXm-PW02hzTlCLLb1W2dbdQr4AJcrWuxoe9ng9SxYgORKeAQSk0TJOXEL8BnEqK 

docker在linux内核容器的基础上提供了更高层的控制工具。

跨主机部署:通过镜像将应用程序和所依赖的文件打包到同一个镜像文件中。

以应用为中心:dockerfile机制大大简化和规范了应用的部署方法。

自动构建:从源码自动构建成镜像。

版本管理:镜像版本管理。

组件重用:任何镜像都可以是基础镜像。

共享:公共镜像,docker registry,docker hub。

工具生态链。

虚拟机

虚拟机是对硬件资源进行划分。

hypervisor 

百度百科:http://baike.baidu.com/link?url=32LeXPssolv90-9E2jNHJfSY86zRCTqm6dKcn1ERZfQghBkRTTj84jM-EyvT56RTEvAeCZ9RGgJifa-s0gRY0q 

 

虚拟机独占资源,docker 不同容器之前可以共享部分操作系统资源。 

 

容器

容器=cgroup+namespace+rootfs+容器引擎。 

NameSpace:命名空间,主要做访问隔离。(linux内核6中namespace)

Cgroup:control group,控制组,主要做资源控制。 (控制进程对系统资源的试用,包括cpu,内存,block I/O,网络带宽)

rootfs:文件系统隔离。rootfs=Root Fils System 所谓的rootfs,根文件系统,就是那些,能让操作系统正常运行的,文件夹和文件的大集合

容器引擎:生命周期控制。

 

镜像 

docker image 是用来启动容器的只读模板,是容器启动所需的rootfs。

remote-dockerhub.com/namespace/bar:latest

 

下载jdk和tomcat 

下载jdk:http://pan.baidu.com/s/1o8pM5vW

下载tomcat:http://pan.baidu.com/s/1o8pM5vW

 

 

安装jdk

yum -y install jdk-7u79-linux-x64.rpm 

centos7下docker 部署javaweb

 

centos7下docker 部署javaweb 

 

查找jdk rpm包安装路径

 

# rpm -qa

# rpm -ql  rpm -ql jdk-1.7.0_79-fcs.x86_64

可以看到是安装在 /usr/java 下 

  

centos7下docker 部署javaweb

 

安装zip uzip

# yum install zip unzip 

 

安装 tomcat

unzip   apache-tomcat-7.0.70.zip -d /usr

centos7下docker 部署javaweb 

 

centos7下docker 部署javaweb  

mv apache-tomcat-7.0.70.zip tomcat  

 centos7下docker 部署javaweb

 

中途退了出来,重新生成一下镜像

docker ps -a

docker commit 68 zuimao-centos

centos7下docker 部署javaweb

 

注意,再启动镜像就是新生成的镜像了

docker run -i -t -v /mnt/soft/:/mnt/soft c9 /bin/bash 

centos7下docker 部署javaweb

可以看到刚才安装的 tomcat 和java 都在。

 

配置java和tomcat环境变量

vi /etc/profile 

加入以下代码 

#set java
export JAVA_HOME=/data/jdk 
export JRE_HOME=$JAVA_HOME/jre 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 

export PATH=$JAVA_HOME/bin:$PATH

#set tomcat 

export CATALINA_HOME=/data/tomcat  
export CATALINA_BASE=/data/tomcat 

 

退出vi后,让设置立即生效

source /etc/profile

centos7下docker 部署javaweb 

容器启动时启动tomcat

vi  /root/run.sh

加入以下代码 

 

#!/bin/sh

source /etc/profile
# Start tomcat
bash /usr/tomcat/bin/catalina.sh run

 

退出vi后,为运行脚本添加执行权限

chmod u+x /root/run.sh

 

 centos7下docker 部署javaweb

退出当前容器后,重新生成镜像

 

exit

docker ps -a

docker commit c9b270c008fa zuimao-centos

 

启动容器内部的 Tomcat 服务 

 

 

不再进入容器的命令行,而是直接启动容器内部的 Tomcat 服务

 

docker run -d -p 18080:8080  --name javaweb zuimao-centos /root/run.sh
 

 centos7下docker 部署javaweb

 中途可能会报错,大多数错误是文件夹的位置找不到,新建一个/data目录,把apache和tomcat文件拷进去

确认是否启动成功

 docker ps