文档章节

centos7下docker 部署javaweb

mucoding
 mucoding
发布于 2016/10/08 20:55
字数 728
阅读 7
收藏 0
点赞 0
评论 0

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

 

本文转载自:http://www.cnblogs.com/sunofwe/p/5629089.html

共有 人打赏支持
mucoding
粉丝 0
博文 35
码字总数 5744
作品 0
南京
程序员
CentOS7安装Docker,运行Nginx镜像、Centos镜像

1、环境,CentOS7 Minimal 64位,Docker必须要64位的系统 2、通过yum命令直接安装,yum install docker 3、启动Docker,并将其设置为开机启动 (1)启动,systemctl start docker.service (2)开...

GKTest ⋅ 2015/07/02 ⋅ 5

区块链入门学习网址大全

区块链学习网址 官网: 官网文档: docker入门教程: 区块链技术指南: 超能云区块链: 超能云免费主机: Hyperledger fablic源码: Hyperledger fablic 0.6: Hyperledger fablic 1.0: Hy...

zhaoliang1131 ⋅ 2017/01/24 ⋅ 0

centos docker环境搭建

概述 基于centos搭建docker部署或开发环境。使用docker-compose实现单机的容器集群。 步骤 更换yum源 参考: Ali-OSM-CentOS centos7 修改yum源为阿里源 安装pip,python的包管理工具 更新yum...

weineeL ⋅ 2017/08/15 ⋅ 0

centos使用docker下安装mysql并配置、nginx

先查看本机都有哪些镜像,命令如下:docker images 使用Docker命令下载MySQL,命令如:docker pull mysql:5.7 下载完成后查看镜像库 启动我们的mysql的docker容器 命令如下: docker run --n...

swzxgege ⋅ 2016/07/22 ⋅ 0

使用Docker搭建Java环境

准备 首先需要准备一个CentOS的操作系统,虚拟机也可以。具体配置要求如下: 必须是64位操作系统 建议内核在3.8以上 安装Docker 只需要通过以下命令即可安装Docker软件 yum -y install docke...

qq_16030133 ⋅ 04/18 ⋅ 0

Docker安装快速入门

用Docker的logo简单解释就是 一艘货轮上面摆放着许多个集装箱,没用集装箱之前 形状不同 大小不同的各类货物难以摆放,现在将货物都放进集装箱里面,方便了管理与存储。 详细概念参照官网文档...

qq58e8afa5a38e0 ⋅ 01/28 ⋅ 0

docker dockerfile编写

我想用灵雀云docker部署现有的javaweb项目,是不是要在dockerfile中描述安装java环境以及安装mysql数据库以及如何从osc git获取我的项目打包部署?

ht896632 ⋅ 2015/07/10 ⋅ 1

使用 Docker 一步搞定 ZooKeeper 集群的搭建

ZooKeeper为分布式应用提供高效、高可用的分布式协调服务,它有三种运行模式:单机模式、伪集群模式和集群模式。本文通过探索ZooKeeper的官方Docker镜像,来看看怎样快速搭建一个ZooKeeper的...

qq_41587243 ⋅ 05/25 ⋅ 0

01 命令参数解析

最近Docker1.0稳定版发布了,这给paas注入新鲜的血液。 Docker是一个功能强大的自动化分布式系统:大规模的Web部署、数据库集群、持续部署系统、私有PaaS、面向服务的体系结构等。 Docker是一...

cantgis ⋅ 2014/08/14 ⋅ 0

可持续自动化构建微服务(4)Centos7 安装 docker

第四章 Centos7 安装 docker Docker 是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,...

jato333 ⋅ 05/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

服务网关过滤器

过滤器作用 我们的微服务应用提供的接口就可以通过统一的API网关入口被客户端访问到了。但是,每个客户端用户请求微服务应用提供的接口时,它们的访问权限往往都需要有一定的限制,系统并不会...

明理萝 ⋅ 22分钟前 ⋅ 1

【2018.06.21学习笔记】【linux高级知识 14.1-14.3】

14.1 NFS介绍 NFS服务全称是NetWork File System:网络文件系统,最早有sun公司开发的,4.0版本由Netapp公司开发,是基于RPC远程过程调用(Remote Procedure Call)协议的服务。 14.2 NFS服务...

lgsxp ⋅ 30分钟前 ⋅ 0

Day18 vim编辑模式、命令模式与练习

编辑模式 命令模式 :nohl 不高亮显示 :x与:wq类似,如果在更改文件之后操作,两者效果一样;如果打开文件,没有任何操作; :wq会更改mtime,但是:x不会。 练习题 扩展 vim的特殊用法 ht...

杉下 ⋅ 34分钟前 ⋅ 0

Enum、EnumMap、EnumSet

1、Enum 不带参数 public enum Car { AUDI { @Override public int getPrice() { return 25000; } }, MERCEDES { ......

职业搬砖20年 ⋅ 35分钟前 ⋅ 0

Java中的锁使用与实现

1.Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源。 在Lock出现之前,java程序是靠synchronized关键字实现锁功能的,而Java SE5之后,...

ZH-JSON ⋅ 36分钟前 ⋅ 0

线程组和 ThreadLocal

前言 在上面文章中,我们从源码的角度上解析了一下线程池,并且从其 execute 方法开始把线程池中的相关执行流程过了一遍。那么接下来,我们来看一个新的关于线程的知识点:线程组。 线程组 ...

猴亮屏 ⋅ 37分钟前 ⋅ 0

相对路径和绝对路径

基本概念   文件路径就是文件在电脑中的位置,表示文件路径的方式有两种,相对路径和绝对路径。在网页设计中通过路径可以表示链接,插入图像、Flash、CSS文件的位置。   物理路径:物理路...

临江仙卜算子 ⋅ 41分钟前 ⋅ 0

消息队列属性及常见消息队列介绍

什么是消息队列? 消息队列是在消息的传输过程中保存消息的容器,用于接收消息并以文件的方式存储,一个队列的消息可以同时被多个消息消费者消费。分布式消息服务DMS则是分布式的队列系统,消...

中间件小哥 ⋅ 43分钟前 ⋅ 0

java程序员使用web3j进行以太坊开发详解

如何使用web3j为Java应用或Android App增加以太坊区块链支持,教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤器...

笔阁 ⋅ 44分钟前 ⋅ 0

vim编辑模式、vim命令模式

vim编辑模式 使用vim filename 进入的界面是一般模式,在这个模式下虽然我们能够查看,复制,剪切,粘贴,但是不能编辑新的内容,如何能直接写入东西呢?这就需要进入编辑模式了,从一般模式...

李超小牛子 ⋅ 46分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部