一、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

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

确认是否启动成功

docker ps

查看docker container ip地址

docker  inspect fe

通过宿主ip访问

ifconfig -a

提交镜像到docker仓库

登录

docker login

docker快速入门+搭建javaweb环境的更多相关文章

  1. Docker 快速安装&搭建 Ngnix 环境,并配置反向代理

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  2. Docker 快速安装&搭建 Mysql 环境

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  3. Docker 快速安装&搭建 MongDB 环境

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  4. 【干货合集】Docker快速入门与进阶

    收录待用,修改转载已取得腾讯云授权 Docker 在众多技术中,绝对是当红炸子鸡.这年头,如果你不懂一点容器,不学一些Docker,还怎么出去跟人炫耀技术? Docker 也是云计算技术中较为热门的一 ...

  5. Java学习心得之 Linux下搭建JavaWeb环境

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建JavaWeb环境 1. 前言2. Java安装3. t ...

  6. Docker快速入门(二)

    上篇文章<Docker快速入门(一)>介绍了docker的基本概念和image的相关操作,本篇将进一步介绍image,容器和Dockerfile. 1 image文件 (1)Docker ...

  7. Docker 快速入门(一)- 情况介绍和安装

    欢迎您! 很高兴您想学习 Docker . 这个页面包含了如何开始使用 Docker 的循序渐进的说明. Docker 快速入门培训模块教你如何: 设置 Docker 环境(在本页) 构建并运行您的镜 ...

  8. Docker快速入门

    Docker已经火了很长一段时间,最近打算在阿里云上好好熟悉一下Docker的相关应用,为今后的工作做准备. 基本概念 Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是do ...

  9. Docker 安装 Redis, 搭建 Redis 环境

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 资深架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

随机推荐

  1. PADSPCB权威指南-第三章 预处理(部分)(原创)

    PADSPCB权威指南-第三章(部分)豆丁地址:http://www.docin.com/p-707132066.html

  2. JavaWeb开发学习(一)-JavaWeb开发概述

    1.Web相关概念 Web程序也就是一般所说的网站,由服务器.客户端浏览器以及网络组成.Web程序的好处是使用简单,不需要安装.学习,有一台电脑.一根网线就可以使用.Web程序不是一般意义上的网站.网 ...

  3. Linux内核--网络栈实现分析(五)--传输层之UDP协议(上)

    本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/7532512 更多请看专栏, ...

  4. poj 3067 - Japan(树状数组)

    先按第一个数从大到小排序,相等的情况下,第二个数按照从大到小排序..... 预处理后,照着树状数组写就行了... 注意:k的最大值应取1000*1000 代码如下: include <cstdi ...

  5. JS中json数据的处理

    1.  json数据结构(对象和数组) json对象:var obj = {"name":"xiao","age":12}; json数组: ...

  6. jar包合并

    多个jar包合并: 1.首先将所以要合并的jar包解压到同一目录中.jar xvf xxx.jar 2.用jar命令将所有.class, .aidl文件打包. jar cvf output.jar   ...

  7. linux-8 基本命令---date

    2,date命令用于显示.设置系统的时间或日期,格式如下: date[选项][+指定格式]. date的详细格式如下: date命令格式 参数 作用 %t 跳个[tab]键 %H 小时(00-23) ...

  8. 使用pango-Cairo列出系统中的有效字体

    使用pango-Cairo列出系统中的有效字体,代码来源于gtk-app-devel-list fonts list using pango #include <glib.h> #incl ...

  9. Aoite 系列 目录

    介绍 本项目从2009年孵化(V->Sofire->Aoite),至今已度过5个年头.一直在优化,一直在重构,一直在商用.有十分完整的单元测试用例.可以放心使用. Aoite on 博客园 ...

  10. 渐析java的浅拷贝和深拷贝

          首先来看看浅拷贝和深拷贝的定义:       浅拷贝:使用一个已知实例对新创建实例的成员变量逐个赋值,这个方式被称为浅拷贝.       深拷贝:当一个类的拷贝构造方法,不仅要复制对象的所 ...