添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 镜像 一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。
    Docker镜像是一个只读的模板。比如一个镜像可以包含Ubuntu系统以及安装在Ubuntu上的Apache Web服务器和你自己的应用。镜像是用来创建容器的。Docker提供了一个简单的方式用以创建新的镜像或者更新现存的镜像,甚至你可以下载其他地方提供的镜像。镜像是Docker服务的组件之一。
    由于Docker使用一个统一文件系统,Docker镜像其实就是一堆文件的集合,并不是像VM那样的是一个操作系统。镜像可以简单到只有一个程序文件,比如如果你写了一个简单的hello world程序放到一个空的镜像中,那么整个镜像的大小,就是你编译后的二进制文件的大小。
    总结来说就是:
    镜像(image)是 Docker 的三大组件之一;
    镜像是用来启动容器的基石;
    镜像是只读的,也即是无状态的,一个镜像是永久不会变的;
    一个没有任何父镜像的镜像,称之为基础镜像;
    在Docker容器中所有的变更都发生顶层的镜像可写层;
    Docker 运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker 会从镜像仓库下载( 默认是 Docker Hub 公共注册服务器中的仓库)。
  • 容器 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库 镜像构建完成后,可以很容易的在当前宿主上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务 1)docker hub 2)私有仓库
  • Dockerfile 镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
  • 数据卷 一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:
    * 数据卷可以在容器之间共享和重用
    * 对数据卷的修改会立马生效
    * 对数据卷的更新,不会影响镜像
    * 数据卷默认会一直存在,即使容器被删除
  • (运行环境:Ubuntu 16.04)
    - 安装jre:
    可参考1: http://blog.csdn.net/u010542873/article/details/51679373
    2: http://www.linuxidc.com/Linux/2016-04/129731.htm
    - 安装Tomcat:
    可参考: Tomcat9安装
    - 在tomcat中部署webapp:
    可参考: http://www.linuxidc.com/Linux/2015-02/112887.htm
    IDEA集成样例可参考 http://blog.csdn.net/yhao2014/article/details/45740111
    - Ubuntu 16.04安装docker:
    可参考 http://www.linuxidc.com/Linux/2016-12/138489.htm

    利用DockerFile制定镜像

    通过编写Dockerfile的方式制作镜像。
    需要在Dockerfile中完成如下几项工作:
    (1)安装jre
    (2)安装tomcat,并完成在tomcat中部署web应用的基本配置(为实现此功能:在制作镜像之前直接先完成tomcat的基础配置,然后直接拷贝到镜像中即可)。
    (3)对外开发8080端口(具体的端口值可以根据实际Tomcat配置参数为准)。

    $mkdir docker
    $cd docker

    建立docker文件夹,并把之前下好的jre文件夹和tomcat文件夹(或者压缩包,均可)拖入其中,docker文件夹下目录如下:

    说明:webapps文件夹中可以放入war吧,后面通过数据卷的方式挂载到镜像里,简单点可以直接将项目文件夹放入apache-tomcat-9.0.0.M21的webapps中,让tomcat自行部署,其余方法可参考上面Tomcat部署部分的方法。

    编写Dockerfile文件

    补充:关于Dockerfile文件
    在容器中配置运行环境(此处是jre和tomcat)的任务主要是在容器中安装软件,并进行相应的配置,如果把这个过程所要执行的命令全都提取出来,写入一个文件中,若需要构建镜像则直接运行该文件,基于其中的命令生成一个镜像。这就是基于Dockerfile构建镜像的方式,这个文件就称为Dockerfile
    Dockerfile文件一共分为四个部分,分别是:注释信息、基础镜像、创建者信息、构建镜像所需的命令:
    详细介绍可参考: http://www.tuicool.com/articles/vqAVRrE http://blog.csdn.net/wsscy2004/article/details/25878223
    Dockerfile文件内容如下:
    (以系统Ubuntu镜像为基础镜像)

    #Build java web app container image
    FROM ubuntu:16.04
    MAINTAINER zhaokx3 "zhaokx3@mail2.sysu.edu.cn"
    #Make java and tomcat install directory
    RUN mkdir /usr/local/java
    RUN mkdir /usr/local/tomcat
    #Copy jre and tomcat into image
    ADD jre1.8.0_131 /usr/local/java/
    ADD apache-tomcat-9.0.0.M21 /usr/local/tomcat/
    ENV PATH $PATH:/usr/local/java/bin
    #Expose http port
    EXPOSE 8080
    CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]
     sudo docker build -t="ubuntu/mine:tomcat" .
    

    简要说明:参数-v指定挂载的卷,如没有可不使用,参数-p将8080端口映射成主机的8090端口,这样就可以访问主机的8090端口就到容器的8080端口。
    docker run 命令详解可参考:http://www.lupaworld.com/article-250439-1.html

    最后成功通过http://localhost:8090/your_test 访问自己的web应用(端口8090):

    可对比直接利用Tomcat部署web应用(端口8080):
    说明:1.权限是root,不是则先提升权限一:安装docker1.https://docs.docker.com/engine/installation/binaries/下载docker最新版二进制... 来自: 凤歌 没耐心的直接看8.3,官方推荐的方式。一、在线下载dockeryuminstall-yepel-releaseyuminstalldocker-io#安装dockerchkconfigdockeron... 来自: a short life 一、在线下载dockeryuminstall-yepel-releaseyuminstalldocker-io#安装dockerchkconfigdockeron#加入开机启动servicedocke... 来自: Scofield_No1的博客 概述首先,需要到阿里云的官网租一个云服务器,至于域名是否需要就看你的需要了,我的服务器配置如下图所示: 还需要准备好xshell6和winscp这两个软件,最好花点时间去熟悉下docker命令和vim... 来自: 荒的博客 一、准备下载jdk、tomcat;准备好应用war包:sample.war启动脚本start_tomcat.sh#!/bin/bash#Desc:#Starttomcatwithdockerconta... 来自: yanjunlu的专栏 1.安装mysql容器  dockerrun--namemysqlname-v/home/ubuntu/*/data0:/var/lib/mysql-p3302:3306-eMYSQL_ROOT_PA... 来自: gongdaxuesheng的博客  一、实验信息Docker​​​​​​+Web+Tomcat应用部署实战 二、实验目的利用Docker搭建Tomcat服务器并部署Web应用 练习Docker基本命令,体会Docker的应用场景 三、... 来自: qq_28694119的博客 修改docker容器的hosts例如:--add-hostpuppetmaster:192.168.0.3,如果想添加多条,就用多个--add-host就OK了在系统根目录创建文件夹app[code=... 来自: tomhat的专栏 参考:作者一https://tommy.net.cn/2015/02/13/run-and-debug-php-website-with-docker-part-1/作者二https://menng.... 来自: qzxdh的专栏 使用Docker部署一个以Tomcat为服务器的支持HTTPS的web站点。其原理和在普通服务器上部署类似,只需要将自己开发的软件包放到Tomcat工程目录下即可。不同的是,Tomcat服务器要在容器... 来自: wfs 1.创建一个centos镜像通过命令下载dockerhub上的官方镜像 dockerpullcentos2.创建一个基于centos镜像的容器通过命令dockerimages查看服务器上已有的镜像 通... 来自: 秋风伴落叶 1.docker安装tomcat8<1>搜索tomcat镜像文件信息   dockersearchtomcat<2>拉取对应的镜像文件   do... 来自: qq_38695182的博客 Docker中容器和镜像的概念镜像和容器类比于面向对象编程中的类和对象的概念下面这个例子是从网上下载一个ubuntu:15.10的镜像(类),然后使用该镜像在本地运行了一个容器(该类生成的实例),这里... 来自: waykwin hypmxy的博客Docker是2014年最为火爆的技术之一,几乎所有的程序员都听说过它。Docker是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐步... 来自: hypmxy的博客 上节课我们已经将静态项目上传到ubuntu的nginx根目录下了,但是如果是动态站项目,那部署无疑是非常麻烦的问题,各种环境的配合与jar包的导入都是容易致命的因素。我们使用docker将动态站项目部... 来自: 菜小白的博客 一、在线下载dockeryuminstall-yepel-releaseyuminstalldocker-io#安装dockerchkconfigdockeron#加入开机启动servicedocke... 来自: 最怕一生碌碌无为,还安慰自己平凡难得可贵! 现在我使用的docker是启动容器后,在里面weblogic上惊醒部署web应用,但是 只能部署一个,这样的结果就是 一个容器是一个weblogic,但是测试环境太多,这样消耗资源太大。能否把多个we 之前部署Web应用,没用docker,直接在服务器上部署,使用了fabric+nginx+supervisor+gunicorn部署,可查看我写过的一片博客:部署Web应用。但后来了解了docker,... 来自: hbnn111的专栏 此篇博客一部分内容有赖于上一篇博客中已经陈述过的信息,如需了解,请移步:http://danlley.iteye.com/blog/2365651 切入正题,上一篇中介绍了如何在Docker中部署To... 来自: qq_30114557的博客 林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka     摘要:本文主要讲了如何在Ubuntu14.0464位系统下来创建一个运行Java we... 来自: AlbenXie的博客 创建tomcat容器dockerruntomcat--namemytomcat-p8080:8080-d进入容器内部交互式的进入tomcat容器。“dockerexec”命令表示在运行中的容器中开启一... 来自: 乞力马扎罗的雪CYF的博客 1、创建容器javaweb1,并添加数据卷便于将安装文件共享到容器dockerrun-it--name=javaweb1-v~/dockerfile:/dataubuntu/bin/bash把jdk1... 来自: iteye_9921的博客 本文探讨的场景是使用Nginx部署一个应用,可能涉及Nginx服务,web服务,webservice服务,缓存服务,数据库服务等,这时就需要多个容器协作,这些容器之间依赖关系非常复杂。面对动态地址,我... 来自: pmlpml的专栏 搜索镜像[root@localhost~]#dockersearchtomcat拉取镜像[root@localhost~]#dockerpulltomcat查看拉取的镜像:通过镜像创建容器docker... 来自: Min_JW的博客 摘自:http://mt.sohu.com/20160203/n436804289.shtml  一个完整的Web应用包含前端页面、数据库、后台逻辑等,按照一般流程去构建需要配置Nginx、MySQL... 来自: 爱的叹息的专栏 上一篇中极其简略的介绍如何利用docker部署web项目,思路是pullLinux镜像后,在此镜像的容器中部署web容器运行环境,然后利用此容器重新生成自己镜像。方法是可行的,会发现生成自己的镜像非常... 来自: diy_os的专栏 1,目的在已经掌握docker安装、docker仓库的基本使用、docker镜像和容器的基本操作和相互转化的基础上,可尝试通过docker搭建一个web服务器,便于分布式部署或快速移植web服务器。通... 来自: 红薯爱帅 本文直接讲解如何在Docker容器中实战部署一个Web应用程序,关于Docker相关的概念和如何安装Docker请参考相关资料完成。 第一步:工具准备演示如何在Docker容器中部署一个JavaWeb... 来自: nuccch的专栏 本博客来源于我的个人博客:www.chenbiaolong.com欢迎访问。概要docker是近年来新兴的虚拟化工具,它可以和虚拟机一样实现资源和系统环境的隔离。本文将主要根据IBM发表的研究报告,论... 来自: cbl709的专栏 1.首先让我们先来了解一下docker是什么,有什么用。Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级... 来自: Vincent_xy的博客 https://www.jianshu.com/p/ff19faeb5bd7Docker部署Sentry+Djangohttps://docs.sentry.io/官网https://docs.sen... 来自: qq_33448670的博客 1.搭建本地仓库1.1下载仓库镜像1.2启动仓库容器2.在CentOS容器中安装JDK2.1创建Linux容器:2.2将JDK复制到myCentos容器中2.3进入容器2.4解压JDK2.5配置环境变... 来自: java派大星 docker部署个nginx,简直太简单了好吧直接一行命令搞定:dockerrun\--namenginx-health-web-pc\-d-p6800:80\-v/usr/docker/nginx/... 来自: wangfei0904306的博客 系统选用Centos或者Ubuntu都可以。大致步骤:安装docker启动docker服务servicestartdocker或者systemctlstartdocker拉取镜像,由于网络原因,推荐从... 来自: diy_os的专栏 关于如何在windows下安装docker,详见http://blog.csdn.net/ownfire/article/details/45847939本文着重阐述如何将docker实用起来大家在协... 来自: 无效的博客 点击上方“中兴开发者社区”,关注我们每天读一篇一线开发者原创好文▎作者简介作者朱磊是开源软件爱好者,致力于web应用部署、运维领域解决方案的研究。将web应用部署在Docker上能够极大的简化部署、方... 来自: 中兴开发者社区 RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统。因为RabbitMQ由Erlang实现,本机部署的话还要安装Erlang的开发环境,成本难免高些。然而,借助Docker的话,环境部... 来自: Mungo的专栏 1、先说如何在docker中部署tomcat  第一步:root用户登录在系统根目录下创建文件夹tomcat7,命令如:mkdirtomcat7,并且切换到该目录下:cdtomcat7;  第二步:创... 来自: 坐忘峰 或者是所有微服务都使用一个镜像但是分别创建不同的容器启动? 如果是一个服务使用一个镜像岂不是太浪费? 我看dockerfile 似乎并不好支持同时构建多个服务,但是如果每个服务都使用独立的镜像岂不是太 本文作者付广平,UnitedStack有云存储工程师,北京邮电大学硕士,从事大数据和云计算相关工作,2016年毕业后加入UnitedStack大数据&容器组,负责Docker、Magnum和Sahar... 来自: project_harbor的博客 本部分记录如何基于已有的镜像部署应用。参考的博客为《OpenShift_034:部署mywebsqldockerimage访问mysql数据库》(该博主的博客需要翻墙浏览)。这里的测试镜像选择的是我自... 来自: 个人学习记录 由于学习过程中发现push镜像的时候一直超时,所以直接把阿里云的Docker仓库申请一个(管理中心–>创建镜像仓库–>我的是华东2绑定github账户即可),搞定!以后push就用这个仓库,pull的... 来自: jacksonary的博客 容器部署解决方案Docker          课程目标目标1:了解Docker与虚拟机的不同点,相比的优势目标2:掌握Docker的启动方法目标3:掌握Docker镜像操作目标4:掌握Docker容... 来自: 號先生的博客 在上一篇文章中介绍了如何在Docker中部署单独的SpringBoot应用。使用Docker命令和Dockerfile文件特别适合创建单独的容器。但如果你想在相互孤立的应用中建立网络通信互相调用,容器... 来自: 王浩的技术博客 Docker概述Docker是一个开源的应用容器引擎,基于 Go语言 并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行... 来自: cbuy888的博客 1.为什么是Fiddler? 抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下: a.Firebug虽然可以抓包... 来自: 专注、专心 Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47251585; 来自: Hongyang 最近正好又用到 DM368 开发板,就将之前做的编解码的项目总结一下。话说一年多没碰,之前做的笔记全忘记是个什么鬼了。还好整理了一下出图像了。不过再看看做的这个东西,真是够渣的,只能作为参考了。项目效... 来自: 不积跬步,无以至千里 在网上所搜索很多操作Word的都是用VC,VS2010做了一些修改,添加操作的方式和用法都有所变化。 要操作Word必须先添加对应的类,如下图在工程中添加操作类(TypeLib中的 MFC类): 来自: xiangjianbo127的专栏 【接上篇】         上述计算星期的方法虽然步骤简单,但是每次都要计算两个日期的时间差,不是非常方便。如果能够有一个公式可以直接根据日期计算出对应的星期岂不是更好?幸运的是,这样的公式是存在的。... 来自: oRbIt 的专栏 Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的Thread... 来自: u011860731的专栏 一、组合模式适用场景把部分和整体的关系用树形结构来表示,从而使客户端可以使用统一的方式对部分对象和整体对象进行管理。二、组合模式结构 抽象构件(Conponent)角色:所有类的共有接口,定义了叶子和... 来自: 小小本科生成长之路 先看一下mybatis拦截器的用法和用途,先用为ibatis3提供基于方言(Dialect)的分页查询的例子来看一下吧!源码:@Intercepts({@Signature(        type=... 来自: lhch1984的专栏 此处仅以VS2010为例,详细说明一下如何在VS环境下生成和使用C++的静态库与动态库。Qt下生成和使用静态和动态库后续再讲。 本文仅供初学者参考,如果有问题欢迎大家指正。        首先简单地理... 来自: luyan的博客 问题场景描述整个项目通过Maven构建,大致结构如下: 核心Spring框架一个module spring-boot-base service和dao一个module server-core 提供系统... 来自: 开发随笔 对象的创建和销毁在一定程度上会消耗系统的资源,虽然jvm的性能在近几年已经得到了很大的提高,对于多数对象来说,没有必要利用对象池技术来进行对象的创建和管理。但是对于有些对象来说,其创建的代价还是比较昂... 来自: 赶路人儿 HOF(Histogramsof Oriented Optical Flow)与HOG类似,是对光流方向进行加权统计,得到光流方向信息直方图。通常用于动作识别中。 不懂HOG特征的,这篇文章讲得很清... 来自: LX 花了几天,终于把matlab版的人脸检测运行成功了,虽然正确率不是很高,看着各种论文上的人脸检测正确率都出奇的高,我是不怎么相信的,有的论文连基于平均脸的人脸检测正确率都能达到98%,汗啊~~  也许... 来自: 海海人生 原文地址:反置页表作者:hilg 在分页系统中为每个进程配置一张页表,进程逻辑地址空间中的每一页,在页表中都对应有一个页表项。在现代计算机系统中通常允许一个进程的逻辑地址空间非常大,因此就有很多页表... 来自: 月光轩辕的专栏