zoukankan      html  css  js  c++  java
  • 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

    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 

     


  • 相关阅读:
    避免Node.js中回调地狱
    XSS和CSRF攻击
    浅析SPDY
    移动端的图片优化
    js中的事件委托技术
    js的5种继承方式——前端面试
    深入理解前端跨域问题的解决方案——前端面试
    javascript中“use strict”的好处和坏处
    Http请求中POST与GET的区别——前端面试
    滚动条离底部的距离小于某个值
  • 原文地址:https://www.cnblogs.com/tenghoo/p/docker_java_web.html
Copyright © 2011-2022 走看看