docker快速入门+搭建javaweb环境
一、windows安装
不要安装旧的 boot2docker包,直接安装 DockerToolbox。
一路next,安装完成以后

试用
1、以管理员身份运行 docker quickstart terminal。

docker version

因种种原因,重装了不下5次,终于成功了!
二、centos安装
先更新centos版本
sudo yum update
sudo yum -y install docker-io

需要切换到root用户
sudo su
service docker start
三、基础概念
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
制作、管理、上传、下载镜像
下载镜像
docker pull busybox

导出镜像
docker save -o busybox.tar busybox
导入镜像
docker load -i busybox.tar

查看元数据
docker inspect busybox:latest

下载centos
docker pull centos
镜像确认
docker images centos

运行centos
docker run -i -t centos /bin/bash
ls /etc

安装wget,制作成一个新镜像
docker run -i -t centos /bin/bash
# yum install -y wget
安装完成以后退出。
# exit
每次执行docker run都会去独立的创建一个新的container来执行程序,输入docker ps -a 找到刚才安装过wget工具的container ID,要把这个container重新做成一个新的image模版 。
docker ps -a

制作一个新的镜像
docker commit 541 zuimao-centos

docker images

执行wget
docker run -t -i --rm=true e8 wget www.baidu.com

登录 docker hub
docker login -u user -p pass

四、linux宿主中搭建java web环境
下载jdk和tomcat
下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
下载tomcat:http://tomcat.apache.org/download-70.cgi
把jdk和tomcat复制到虚拟机中
虚拟机如何与主机之间直接复制粘贴文件
http://jingyan.baidu.com/article/c33e3f48a5c153ea15cbb5b2.html
文件先复制到了桌面, 通过 mv 指令移动到 /mnt/soft中。

将虚拟机 centos 的 /mnt/soft挂载到 镜像中
docker run -i -t -v /mnt/soft/:/mnt/soft 2a /bin/bash

安装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/bash
退出vi后,为运行脚本添加执行权限

退出当前容器后,重新生成镜像
exit
docker ps -a
启动容器内部的 Tomcat 服务

确认是否启动成功
docker ps

查看docker container ip地址
docker inspect fe

通过宿主ip访问
ifconfig -a

提交镜像到docker仓库
登录
docker login

docker快速入门+搭建javaweb环境的更多相关文章
- Docker 快速安装&搭建 Ngnix 环境,并配置反向代理
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- Docker 快速安装&搭建 Mysql 环境
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- Docker 快速安装&搭建 MongDB 环境
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- 【干货合集】Docker快速入门与进阶
收录待用,修改转载已取得腾讯云授权 Docker 在众多技术中,绝对是当红炸子鸡.这年头,如果你不懂一点容器,不学一些Docker,还怎么出去跟人炫耀技术? Docker 也是云计算技术中较为热门的一 ...
- Java学习心得之 Linux下搭建JavaWeb环境
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建JavaWeb环境 1. 前言2. Java安装3. t ...
- Docker快速入门(二)
上篇文章<Docker快速入门(一)>介绍了docker的基本概念和image的相关操作,本篇将进一步介绍image,容器和Dockerfile. 1 image文件 (1)Docker ...
- Docker 快速入门(一)- 情况介绍和安装
欢迎您! 很高兴您想学习 Docker . 这个页面包含了如何开始使用 Docker 的循序渐进的说明. Docker 快速入门培训模块教你如何: 设置 Docker 环境(在本页) 构建并运行您的镜 ...
- Docker快速入门
Docker已经火了很长一段时间,最近打算在阿里云上好好熟悉一下Docker的相关应用,为今后的工作做准备. 基本概念 Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是do ...
- Docker 安装 Redis, 搭建 Redis 环境
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 资深架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
随机推荐
- WInform关闭程序的几种方法以及区别。
1.this.Close(); 关闭窗体,如果关闭的是主窗体 程序结束.2.Application.Exit(); 退出所有的窗体但是如果有托管线程的话无法完全退出3.Application.Exit ...
- Enable MFA for a user
If you are root/admin account, in order to configure a virtual MFA device, you must have physical ac ...
- DB_oracle学习笔记_概念分析
概念分析: 1. 数据库(Database): 数据库是一个文件集合,包括数据文件,临时文件,重做日志文件和控制文件.也可以说数据库是物理操作系统文件或磁盘集合.数据库可以由多个实例(sc ...
- CSAPP读书随笔之一:为什么汇编器会将call指令中的引用的初始值设置为-4
CSAPP,即<深入理解计算机系统:程序员视角>第三版,是一本好书,但读起来确需要具备相当的基本功.而且,有的表述(中译文)还不太直白. 比如,第463页提到,(对于32位系统)为什么汇编 ...
- 奇妙的动态代理:EF中返回的对象为什么序列化失败
今天有如鹏的学生遇到一个问题:把一个对象保存到Session中(进程外Session)后,Web服务器重启,当从Session读取这个对象的时候报错,提示是一个“T_Users”后面跟着一大串数字的类 ...
- 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.4,增加系统设置、最近联系人、群功能(源码)
自从上次版本(GG叽叽V3.2,增加离线消息.离线文件功能)发布后,我个人觉得主要的大功能都实现得差不多了,接下来的几个版本将不断优化GG的细节,提高其可用性.这次版本更新的内容主要是为GG增加了系统 ...
- MySQL3:索引
什么是索引 索引是对数据库表中一列或者多列的值进行排序的一种结构,所引用于快速找出在某个列中有一特定值的行.不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行.表越大,查询数据所花 ...
- 学习Scala第一篇-从hello World开始
最近开始系统性的学习scala.其实之前使用过scala的,比如我在用Gatling这款性能测试工具的时候就接触到了scala了.Gatling本身就是用Scala写的,而且Gatling的性能测试配 ...
- How to Change RabbitMQ Queue Parameters in Production?
RabbitMQ does not allow re-declaring a queue with different values of parameters such as durability, ...
- Redis批量删除KEY的方法
Redis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作. 代码如下: redis-cli keys “* ...