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

查找jdk rpm包安装路径

# rpm -qa

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

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

安装zip uzip

# yum install zip unzip

安装 tomcat

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

mv apache-tomcat-7.0.70.zip tomcat

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

docker ps -a

docker commit 68 zuimao-centos

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

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

可以看到刚才安装的 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

容器启动时启动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

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

exit

docker ps -a

docker commit c9b270c008fa zuimao-centos

启动容器内部的 Tomcat 服务 

 
不再进入容器的命令行,而是直接启动容器内部的 Tomcat 服务
docker run -d -p 18080:8080  --name javaweb zuimao-centos /root/run.sh
 

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

确认是否启动成功

docker ps

centos7下docker 部署javaweb的更多相关文章

  1. centos7下docker的安装教程

    Centos7下docker安装教程以及踩过的那些坑 推荐在Centos下安装docker,在windows下安装docker可能会遇到很多的问题,而且docker官方推荐使用linux环境来使用do ...

  2. Centos7借助docker部署mysql,提供远程链接服务

    Centos7 借助docker部署mysql,并提供远程连接服务 安装docker 运行docker 注意安装docker和运行docker的步骤很简单,可以参考我学习docker的笔记 docke ...

  3. centos7 下zookeeper 部署 单机多实例模式

    centos7 下zookeeper 部署 本文参考https://www.linuxidc.com/Linux/2016-09/135052.htm 1.创建/usr/local/zookeeper ...

  4. centos7 下 安装部署nginx

    centos7 下 安装部署nginx 1.nginx安装依赖于三个包,注意安装顺序 a.SSL功能需要openssl库,直接通过yum安装: #yum install openssl b.gzip模 ...

  5. 关于docker部署javaweb应用的问题

    我做了两个镜像,一个mysql,一个tomcat.建完mysql容器之后,在建tomcat的时候用--link把他们链接起来了进tomcat的容器里面 /etc/hosts 也发现了mysql的ip但 ...

  6. 记录centos7下tomcat部署war包过程

    记录centos7下tomcat部署war包过程 1.官网下载tomcat安装包.gz结尾的 2.上传到/usr/local/ ,并解压到tomcat目录下 3.进入tomcat/bin目录,运行./ ...

  7. Tars | Win10下Docker部署TarsJava(SpringBoot)全过程及踩坑记录

    @ 目录 前言 1. 相关环境版本: 坑点一:VMware与Win10 Docker冲突 坑点二:20.版本TarsJava(SpringBoot)依赖文件缺失 2. Docker安装: 坑点三:Do ...

  8. docker部署Javaweb项目(jdk+tomcat+mysql)

    步骤一:在主机下载安装docker,参照Centos7上安装docker 步骤二:下载Linux版本的JDK1.6和Tomcat6.0(其他项目若依赖其他版本的运行环境可选择另外版本下载),通过sec ...

  9. Windows 下 docker 部署 gitlab ci

    一.安装 1. 安装 docker Docker下载 注意:Windows 10 家庭版获取 之前的版本不能直接安装 Docker ,而是需要去安装 Docker Toolbox 我这里安装的是 Do ...

随机推荐

  1. [CLR via C#]8. 方法

    一.实例构造器和类(引用类型) 类实例构造器是允许将类型的实例初始化为良好状态的一种特殊的方法. 类实例构造器方法在"方法定义元数据表"中始终叫.ctor(代表constructo ...

  2. Python基础:序列

    一.概述 序列类型(Sequence Types)类似于C中的数组,它是包含一组成员的连续列表,这些成员紧邻排列,并且可以通过序号(下标偏移量)访问其中的一个或多个成员.序列类型的示意图如下所示: P ...

  3. 【jQuery基础学习】07 jQuery表单插件-Form

    作用:jQuery Form插件的作用是为了让我们可以很方便地用ajax的方式提交表单,从而使我们提交表单的时候页面不用进行刷新. 它的核心方法是ajaxForm()和ajaxSubmit() 升级表 ...

  4. 开源的javascript实现页面打印功能,兼容所有的浏览器(情况属实)

    这篇文章完全是属于技术文章,也是记录一下自己在项目当中遇到的坑爹问题啊,因为是B/S的程序,所以打印功能还是必须要有的,对于打印我选择了一个js插件,发现非常的简单和方便,所以这里拿出来和大家分享一下 ...

  5. Scala Collection简介

    Traversable vs Iterable Traversable, Iterable 都是trait. Iterable 继承 Traversable. Traversable: 支持forea ...

  6. mybatis中自建的类型别名

    在使用mybatis过程中经常用到类型别名,除了我们自己新建的别名外,mybatis还自带了很多类型别名和java中的类型的映射,下面先看一个自建的别名的配置 <typeAliases> ...

  7. hadoop2.2.0伪分布式搭建2--安装JDK

    2.1上传FileZilla 上传 https://filezilla-project.org/ 2.2解压jdk #创建文件夹 mkdir /usr/java #解压 tar -zxvf jdk-7 ...

  8. 设计模式之Builder (创建者模式)的一些个人理解(转)

    对于Builder模式很简单,但是一直想不明白为什么要这么设计,为什么要向builder要Product而不是向知道建造过程的Director要.刚才google到一篇文章,总算清楚了.在这里转贴一下 ...

  9. Web.Config的配置

    1.配置数据库连接 在<connectionStrings></connectionStrings>节中完成,配置过程需指定四个属性server(DataSource)服务器名 ...

  10. sublimeText插件推荐

    工欲善其事必先利其器.sublimeText是前端开发工程师的一把利器,它的优点包含: 随时保留文件的修改 Goto Anything,智能搜索; 简单全面的插件体系; 代码地图; 快速启动 ... ...