Docker的一些理解(二)

百度百科

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:

  1. DockerClient客户端
  2. Docker Daemon守护进程
  3. Docker Image镜像
  4. DockerContainer容器 [2]
docker有什么用

对docker有了清晰的了解之后,我们心里可能在想: 这玩儿对我有什么用? 我在哪里能用得上? 怎么用才对?

这里引用几个案例来让大家体会体会。

1、案例一 前几天,公司一批服务器就要到期了,由于服务器是15年购买的,硬件的性能远比现在新出的云主机低,因此决定把所有服务器都换成新一代服务器,但是小编整准备动手迁移服务器时,内心一阵阵崩溃感涌上心头,仔细一算,每台服务器都要做同样的事情:

1、安装jdk、Tomcat、nginx 2、配置jdk环境变量和系统变量 3、配置Tomcat 4、配置nginx 5、安装项目所需的视频解码组件 6、导入项目所需的一些特殊字体

后来决定用docker部署的办法,在每台服务器都把docker安装之后,只需要在其中一台服务器中把Tomcat镜像从镜像仓库拉取下来,把这些配置都设置好,做成一个自己的镜像上传到镜像仓库中,之后在其他几台服务器都下载自己做的镜像,运行于docker中,把代码上传,就万事大吉了。

2、案例二

前不久的圣诞活动中,公司临时的活动方案在程序员的加班加点中终于上线,但是一上线之后发现推广海报中的中文名字乱码,领导问责测试人员怎么没做好测试,测试很委屈的说我已经测试无数遍并且测试报告都提交了,解决了所有问题才上线的;没办法只能让服务器同事查看正式服务器中的tomcat配置,发现原来 tomcat用了默认编码方式:iso8859-1,而测试环境中是UTF-8。针对这个问题,项目组决定把开发环境迁移到docker中,在测试环境中测试无误后,把镜像打包发布到正式环境中,解决了环境不同导致的问题。

现在正在学docker的我感觉编写这个dockerfile文件也麻烦啊!(可能学到后面就不一样了!)

docker三要素

一、镜像(image)

docker image是一个只读的模板,image用来创建docker容器,一个镜像可以创建多个容器。

二、容器(container)

  1. docker利用容器独立运行的一个或者一组应用。容器就是用镜像创建的运行实例。(也就是把镜像导入docker中,然后运行起来了,这就叫容器!)
  2. 对容器的操作可以是:启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
  3. 可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
  4. 容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

三、仓库

  1. 仓库(Repository)是集中存放镜像文件的场所。
  2. 仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。(仓库注册服务器包容了仓库)
  3. 仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
  4. 最大的公开仓库是 Docker Hub(https://hub.docker.com/),太慢,一般不用。
  5. 存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云 等

Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就似乎 image镜像文件。只有通过这个镜像文件才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。

* image 文件生成的容器实例,本身也是一个文件,称为镜像文件。

* 一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器

* 至于仓储,就是放了一堆镜像的地方,我们可以把镜像发布到仓储中,需要的时候从仓储中拉下来就可以了。

Docker的一些理解(二)相关推荐

  1. 初学docker理解二

    docker理解二 <此文仅仅个人对于docker的理解,不涉及任何其他的东西> 随着对docker理解的深入脑海里总是会浮现几个问题: 1. docker到底是什么 docker现实中究 ...

  2. docker 命令深入理解

    目录 ​ 一.容器相关 1.docker run centos 2.查看centos容器 3.删除退出的容器 4.两个危险的命令 docker image prune && docke ...

  3. docker 构建上下文 理解

    目录 对 Docker 构建上下文的理解误区 理解 Docker 的架构 理解 docker build 的工作原理 正确理解 Docker 构建上下文 对 Docker 构建上下文的理解误区 我们都 ...

  4. docker镜像制作(二)——构建企业镜像LAMP+BBS

    docker镜像制作(二)--构建企业镜像LAMP+BBS 一.LAMP概述 二.进行搭建 1.启动基础镜像容器 2.容器中优化yum源,并安装软件 3.软件初始化 ①.ssh的开启 ②.mysql的 ...

  5. 【经典算法实现 44】理解二维FFT快速傅里叶变换 及 IFFT快速傅里叶逆变换(迭代法 和 递归法)

    [经典算法实现 44]理解二维FFT快速傅里叶变换 及 IFFT快速傅里叶逆变换(迭代法 和 递归法) 一.二维FFTFFTFFT快速傅里叶变换 公式推导 二.二维FFTFFTFFT 及 IFFTIF ...

  6. docker 常用命令(二)——容器命令

    docker 常用命令(二) # 容器命令 注:有了镜像才可以创建并启动容器:本文在centos7.9下创建centos:latest 下载最新版centos: docker pull centos ...

  7. 矩阵与行列式的区别 行列式简单理解(二三阶)

    目录 矩阵与行列式的区别 行列式简单理解(二三阶) 矩阵与行列式的区别 如下: 1. 矩阵是一个表格,行数和列数可以不一样:而行列式是一个数,且行数必须等于列数.只有方阵才可以定义它的行列式,而对于长 ...

  8. Docker部署镜像(二)

    Docker部署镜像(二) 文章目录 Docker部署镜像(二) 前言 一.部署镜像 1.Cerebro 2.Zookeeper 3.Elasticsearch-head 4.MSSQL 5.Sent ...

  9. 深入理解二维码生成尺寸

    深入理解二维码生成尺寸 详细了解二维码的原理,CSDN这两篇博客不错: 转自MachineChen的博客:http://blog.csdn.net/u012611878/article/details ...

最新文章

  1. Java基础概念性的知识总结
  2. 波士顿大学计算机科学硕士申请要求,波士顿大学计算机信息系统理学硕士研究生申请要求及申请材料要求清单...
  3. 【ASP.NET开发】ASP.NET(MVC)三层架构知识的学习总结
  4. Python Unicode与中文处理
  5. electron/nodejs实现调用golang函数
  6. php简单实用的操作文件工具类(创建、移动、复制、删除)
  7. 对后台返回的数据进行评分排序、时间排序!
  8. 综合实例_为啥要做“三维管线综合”?看个实例就明白
  9. 无法打开数据库‘mysql_MySQL数据库之MYSQL无法启动解决方法
  10. Tensorflow Timeline介绍及简单使用
  11. 技术小故事-Activity的Launch Mode引起的动画“疑案”
  12. 通过实验来比较git merge --no-ff 与--ff 和--squash的区别
  13. 快速搞懂MD5解密原理,了解常用的MD5在线解密网站
  14. 食品加工行业MES与APS的应用
  15. Python脚本实现WIFI网络的扫描、连接和断开
  16. 使用TL-WDN5200H无线网卡
  17. 关于chrome、360浏览器自动填充的黄色背景处理方案
  18. “交警+科技”温暖返乡路
  19. centos 安装安全狗
  20. 业务流程即服务:业务的重新构想

热门文章

  1. eclipsenbsp;mavennbsp;pluginamp;n…
  2. IE6,IE7下按钮(BUTTON)变宽
  3. 一分钟实现纯CSS全屏滚动特效
  4. 从零打造 Vue 聊天组件
  5. 机器学习实战11-训练深层神经网络
  6. sun-java6-jdk_Ubuntu下安装sun-java6-jdk和eclipse
  7. 6s电路图纸 iphone_(分享)iphone6s原理图、点位图(维修必备)
  8. shell脚本和常用命令
  9. [bzoj1925][Sdoi2010]地精部落
  10. Hbase对时,时差范围的确定