微信公众号:Java患者
专注Java领域技术分享

Docker介绍

Docker是基于Go语言实现的开源应用容器引擎,通过对应用组件的封装、分发、部署、运行等生命周期的管理,使的用户的应用及其运行环境能够做到“一次封装,到处运行”

虚拟化技术

        虚拟机:虚拟机是通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。使得应用程序,操作系统和硬件三者之间的逻辑保持不变。由于在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量,每个虚拟机都有独立的CMOS、硬盘和操作系统,虚拟机存在资源占用多、冗余步骤多、启动慢等缺点。

        Linux容器:与虚拟机不同,Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,形成一个“容器”。不需要捆绑一整套操作系统,只需要软件工作所需要的库资源和设置打包放在容器中,这意味着从开发到测试再到生产的整个过程中,Linux 容器都具有可移植性一致性。容器内的应用进程直接运行与宿主的内核,容器自己没有内核,而且没有进行硬件虚拟,系统因此而变得高效轻量并保证部署在任何环境种的软件都始终如一运行。而我们所讲的Docker就是基于Linux容器技术发展而来的

为什么需要容器技术

容器可以确保您的应用拥有必需的库、依赖项和文件,让您可以在生产中自如地迁移这些应用,无需担心会出现任何负面影响。实际上,您可以将容器镜像中的内容,视为 Linux 发行版的一个安装实例,因为其中完整包含 RPM 软件包、配置文件等内容。但是,安装容器镜像发行版,要比安装新的操作系统副本容易得多。这样可以避免危机,做到皆大欢喜。

生产中为什么使用Docker容器

可以实现一次构建、到处运行,更快速的应用交付和部署,更便捷的升级和扩缩容,更简单的系统运维,更高效的计算机资源利用。

在Docker中重要的概念

镜像:Docker 镜像(image)就是一个只读的模板,镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。

容器:Docker 利用容器(Container)独立运行的一个或一组应用,容器是用镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

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

Docker怎么工作的?

Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。容器,是一个运行时环境,就是我们前面说到的集装箱。容器,是一个运行时环境,就是我们前面说到的集装箱。

Docker镜像是什么?

首先我们要了解什么是UnionFS(联合文件系统),UnionFS是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。        Union 文件系统是 Docker 镜像的基础,镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

为什Docker镜像采用分层的结构?

最大的一个好处就是共享资源。比如:有多个镜像都从相同的 base 镜像构建而来,那么宿主机只需在磁盘上保存一份base镜像,同时内存中也只需加载一份 base 镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享。

小结

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

查看

docker 不包含依赖 打包_Docker容器技术(概念篇)相关推荐

  1. docker 不包含依赖 打包_docker源码打包RPM

    docker打包rpm 在完成了docker代码的编写和测试之后,如何发布docker程序?在centos上,一般使用RPM包进行打包.本文主要 RPM主要包括两种,一种是以二进制代码发布,一种是以源 ...

  2. docker 不包含依赖 打包_Docker打包深度学习项目(解决:Opencv依赖库、共享内存)...

    最近比赛要提交打包好的CNN模型给主办方去测试,使用Docker镜像.这可难倒了我这个小白,搞了好几天才打包好.在这里记录一下Docker使用过程,希望能给广大同学们提供点帮助. 文章内容包含以下3个 ...

  3. docker 不包含依赖 打包_从零开始学K8s: 4.Docker是什么

    "Docker"可以指代的对象可以有如下几个: Docker 容器技术:可以创建和使用Linux容器 Docker 社区:开源Docker社区致力于改进这些技术,使所有用户受益(h ...

  4. docker 不包含依赖 打包_2019开启新学习,带你从零了解Docker

    2013年发布至今, Docker是近年来非常火的技术, 一直广受瞩目,被认为可能会改变软件行业.而且Docker不仅仅是Linux Redhat和Canonical等Linux巨头眼里的宠儿,微软等 ...

  5. 计算机领域 容器概念,容器技术概念详解 - Docker 基础教程

    在前面的章节里,我们安装了 Linux,也安装了 Docker,接下来是不是该上手 Docker 的使用了呢? 先不要着急,通过<Docker简介>的章节介绍,相信我们已经对 Docker ...

  6. 1.1 容器技术概念

    容器 对于容器,它首先是一个相对独立的运行环境,在这一点有点类似于虚拟机,但是不像虚拟机那样彻底.在容器内,应该最小化其对外界的影响,比如不能在容器内把宿主机上的资源全部消耗,这就是资源控制. 容器与 ...

  7. docker 启动时指定需要绑定的网卡_Docker容器网络-基础篇

    Docker的技术依赖于Linux内核的虚拟化技术的发展,Docker使用到的网络技术有Network Namespace.Veth设备对.Iptables/Netfilter.网桥.路由等.接下来, ...

  8. 查看docker镜像内部端口号_docker 容器内查看端口

    本文介绍 P2P 加速功能的基本概念.配置方法.使用方法以及故障排查. 什么是 P2P 加速 在镜像拉取流程中,所有镜像的数据流量都从服务器中统一拉取.当几十台 ECS 同时拉取镜像时,我们提供的服务 ...

  9. docker启动nginx后挂了_Docker容器部署 Nginx服务

    1.查找 Docker Hub 上的 nginx 镜像 [root@localhost ~]# docker search nginx 2.拉取官方的Nginx镜像 [root@localhost ~ ...

最新文章

  1. 横空出世,比Visio快10倍的画图工具来了。
  2. TransDecoder
  3. 使用opencv作物件识别(一) —— 积分直方图加速HOG特征计算
  4. php内核函数手册,深入理解PHP内核(五)函数的内部结构,深入理解内部结构
  5. 单机塔防游戏推荐_电脑高自由度单机游戏推荐
  6. CodeForces - 1358C Celex Update(思维)
  7. [转]Visual Studio 项目类型 GUID 清单
  8. docker部署flask_使用Docker,GCP Cloud Run和Flask部署Scikit-Learn NLP模型
  9. 图形化c语言编程,「分享」C语言如何编写图形界面
  10. 90%代码如何实现自动迁移到鲲鹏平台?
  11. Jenkins控制台中文输出乱码解决方法
  12. VB中KeyCode常数用法
  13. python 第三周测试答案_Python 基础学习 (第三周)
  14. Codejock Suite Pro ActiveX 20.0 Crack
  15. 金蝶KIS/K3各版本下载地址
  16. 正交幅度调制(QAM)信号的产生与解调介绍及matlab实现
  17. windows 系统电脑内外网出问题,解决方案
  18. 铁路订票系统的简单设计
  19. matlab算kappa系数,[转载]Kappa系数的计算及应用
  20. CDN-内容推送网络

热门文章

  1. [POJ2342]Anniversary party(树dp)
  2. 关于控件的AutoSize属性影响界面布局的问题解决
  3. .Net常用正则判断方法
  4. From 百度知道 SQLSERVER 字符集排序规则简单说明
  5. linux脚本实现scp命令自动输入密码和yes/no等确认信息
  6. winrm service
  7. 腾讯(求丢失的元素)
  8. rfid2-micro2440,keil4裸机
  9. 【Redis学习】Redis管理命令总结
  10. 【Java线程】互斥 同步 异步 并发 多线程的区别与联系