docker基础入门之一

简介: 一、概述   1、传统虚拟化技术:      纯软件的虚拟化是通过对于硬件层的模拟从而实现允许运行多个操作系统;      硬件辅助虚拟化需要硬件层面对于虚拟化的支持,类似Intel-VT技术等,具有更高的运行效率;     解决方案:       商业版解决方案:VMware vSphe...

一、概述

  1、传统虚拟化技术:

     纯软件的虚拟化是通过对于硬件层的模拟从而实现允许运行多个操作系统;

     硬件辅助虚拟化需要硬件层面对于虚拟化的支持,类似Intel-VT技术等,具有更高的运行效率;

    解决方案:

      商业版解决方案:VMware vSphere、 VMware Fusion

      开源解决方案:KVM、Xen

  2、system-level虚拟化(container虚拟机技术):

     不需要模拟硬件层;

     共享同一个HOST OS的Kernal

      user space  instance = Container

        

    解决方案:

      LXC:

      OpenVZ:

      Docker:

      Imctfy:google开源的容器虚拟实现

  3、容器虚拟化和传统虚拟化的区别:

  传统虚拟化 容器虚拟化
创建速度 很慢 非常快
性能影响

通过对于硬件层的模拟,增加了系统调用链路

的环节,有性能损耗

共享Kernel,几乎没有性能损耗
资源消耗 很大 

很小,一台机器可以轻松创建多个

Container

操作系统覆盖 支持Linux、windows、Mac等 仅仅支持Kernal所支持的OS

  4、container核心技术cgroups,namespace,chroot:

    CGroups 限制容器的资源使用;

      Linux内核提供的限制,记录和隔离进程组所使用的资源,由Google工程师提出,后来整合进kernel;

      通过不同的子系统(blkio、cpu、cpuacct等)来实现对不听资源使用的控制和记录; 

    Namespace机制,实现容器间的隔离;

      pid,容器有自己独立的进程表和1号进程

      net,容器有自己独立的network info

      ipc,在ipc通信时候,需要加入额外信息来标识进程;(进程间通信)

      mnt,每个容器有自己唯一的目录挂载;

      utc,每个容器有独立的hostname和domain

    chroot,隔离根文件系统:

      将host os的某个目录隔离成container的根目录;

二、进入Docker的世界:  

  dotCloud是docker公司的前身,专注于PaaS的云计算平台;可能是支持最广泛的PaaS平台;

  使用container的概念来解决应用stack部署的难题;  

  定义:什么是docker

    开源的应用容器引擎,方便打包发布应用到容器中;

    Go语音领域比较大型的应用;

  docker实现:

    docker是container技术的实现,最早使用LXC作为container的引擎,最新版本的docker使用libcontainer替换了lxc;

    采用aufs文件系统来管理Image和container

    基于C/S架构的实现,Server端使用UnixSocket,也可以切换到TcpProtocol;

  aufs文件系统:

    1、advanced multi  layer unification filesystem //先进的多层的联合文件系统

    2、可以实现把多个不同目录的内容合并在一起;

    3、允许read-only和read-write目录并存;

        

  docker中的aufs:

    docker使用aufs来实现分层的文件系统的管理;

    只读部分定义为Image,可写部分是container

    Image类似一个单链表系统,每个Image包含一个指向parent image的指针;

    没有parent Image的image是base Image

        

  docker hub:

    类似于Github服务,用来分发Image

    大量标准的Image,例如Tutum/Ubuntu, Tutum/Mysql

  docker的优点:

    构建标准化的应用运行的环境;

    良好的RestAPI的实现;

    Container的实现,更少的资源的使用,创建速度快;

  docker的局限性:

  • 基于Linux64的,不能在32bit的环境下运行;
  • GuestOS只能是Linux Base
  • 隔离性相对于KVM等虚拟化技术有所欠缺;
  • 采用cgroup的resource control对于cpu的度量很困难;
  • container随用户进程的停止而销毁;    

  docker和LXC的区别:

  1. docker更专注于部署,而LXC专注于进程的隔离;
  2. docker有更好的api的方便对于docker容器的管理;
  3. dockerfile让image的创建变得容易;
  4. 通过docker hub方便image的分享; 

  docker的未来:

  1. 网络
  2. 安全性
  3. 容器引擎

 

相关文章
|
13天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
55 2
|
1月前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【10月更文挑战第2天】本文将带你走进云原生的世界,从基础的Docker容器技术开始,逐步深入到Kubernetes集群管理。我们将通过实际代码示例,探索如何利用这些工具构建、部署和管理现代云应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,让你在云原生领域迈出坚实的一步。
87 5
|
1月前
|
Linux 持续交付 Docker
掌握Docker:从入门到实践
Docker 是一个开源容器引擎,允许开发者将应用及其依赖打包成可移植的容器,在任意 Linux 机器上运行。本文从基本概念入手,详细介绍 Docker 的安装、基本操作、镜像构建及 Docker Compose 的使用,并通过实战案例展示如何部署 Web 应用、构建微服务架构及实现 CI/CD。通过学习,你将掌握 Docker 的核心功能,提升应用开发和部署效率。
|
7天前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
15天前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
21天前
|
运维 持续交付 虚拟化
docker入门详解!!!
本文介绍了容器技术的发展历程,从物理机到虚拟化再到容器化,重点讲解了Docker的诞生及其优势。Docker通过轻量级的容器技术,实现了资源的高效利用、快速启动、环境一致性、持续交付和部署等优点。文章还详细解析了Docker的架构和工作原理,包括Docker Daemon、REST接口、Docker Client等组件,以及容器与虚拟机的差异。
57 2
|
28天前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
42 3
|
1月前
|
Ubuntu Shell 开发者
Docker入门:轻松开始容器化之旅
【10月更文挑战第17天】Docker 是一种开源的应用容器引擎,它让开发者能够“一次构建、到处运行”。Docker 通过容器化技术将应用程序及其依赖打包在一起,从而确保应用在任何环境中都能一致地运行。本文将为新手用户提供一个全面的Docker入门指南,包括基本概念、优势、安装配置以及如何创建和管理容器。
46 2
|
1月前
|
存储 运维 云计算
探索Docker容器化:从入门到实践
在这个快速发展的云计算时代,Docker容器化技术正在改变应用的开发、部署和管理方式。本文旨在为初学者提供一个关于Docker的全面入门指南,并通过实践案例展示Docker在实际开发中的应用。我们将一起了解Docker的核心概念、基本操作、网络和存储,以及如何构建和部署一个简单的Web应用。无论你是开发者还是运维人员,本文都会帮助你快速掌握Docker的核心技能。
|
1月前
|
Kubernetes Cloud Native Docker
云原生入门:Kubernetes和Docker的协同之旅
【10月更文挑战第4天】在这篇文章中,我们将通过一次虚拟的旅行来探索云原生技术的核心——Kubernetes和Docker。就像乘坐一艘由Docker驱动的小船启航,随着波浪(代码示例)起伏,最终抵达由Kubernetes指挥的宏伟舰队。这不仅是一段技术上的旅程,也是理解现代云架构如何支撑数字世界的冒险。让我们扬帆起航,一探究竟!
下一篇
无影云桌面