zoukankan      html  css  js  c++  java
  • linux容器技术和Docker

    linux容器技术和Docker

    概述

    • Docker在一定程度上是LXC的增强版,早期的Docker使用LXC作为容器引擎,所以也可以说Docker是LXC的二次封装发行版,目前docker使用的容器引擎为runC,其是容器运行时标准的实现之一;Docker使用镜像的方式启动容器,解决了LXC所面临的问题目前市面上所说的容器通常指Docker,其以成为事实上的工业标准
    • Docker 是一个打包、分发和运行应用程序的平台。正如我们所说,它允许将你的应用程序和应用程序所依赖的整个环境打包在一起。这既可以是一些应用程序需要的库,也可以是一个被安装的操作系统所有可用的文件。Docker 使得传输这个包到一个中央仓库成为可能,然后这个包就能被分发到任何运行Docker 的机器上,在那儿被执行(大部分情况是这样的,但并不尽然,后面将做出解释) 。

    docker 三个主要概念

    • 镜像: 镜像里包含了你打包的应用程序及其所依赖的环境。它包含应用程序可用的文件系统和其他元数据,如镜像运行时的可执行文件路径。
    • 镜像仓库:镜像仓库用于存放Docker 镜像,以及促进不同人和不同电脑之间共享这些镜像。当你编译你的镜像时,要么可以在编译它的电脑上运行,要么可以先上传镜像到一个镜像仓库,然后下载到另外一台电脑上并运行它。某些仓库是公开的,允许所有人从中拉取镜像,同时也有一些是私有的,仅部分人和机器可接入。
    • 容器 : 容器通常是一个Linux 容器,它基于Docker 镜像被创建。一个运行中的容器是一个运行在Docker 主机上的进程,但它和主机,以及所有运行在主机上的其他进程都是隔离的。这个进程也是资源受限的,意味着它只能访问和使用分配给它的资源( CPU 、内存等)

    和虚拟机差异

    • 虚拟机的主要好处是它们提供完全隔离的环境,因为每个虚拟机运行在它自己的Linux 内核上,而容器都是调用同一个内核
    • 理论上, 一个容器镜像能运行在任何一个运行Docker 的机器上。但有一个小警告一一-一个关于运行在一台机器上的所有容器共享主机Linux 内核的警告。如果一个容器化的应用需要一个特定的内核版本,那它可能不能在每台机器上都工作。如果一台机器上运行了一个不匹配的Linux 内核版本,或者没有相同内核模块可用,那么此应用就不能在其上运行。
  • 相关阅读:
    Python面试进阶问题,__init__和__new__的区别是什么?
    LeetCode 76,一题教会你面试算法时的思考套路
    LeetCode 75,90%的人想不出最佳解的简单题
    手把手带你入门numpy,从此数据处理不再慌【四】
    一次找出范围内的所有素数,埃式筛法是什么神仙算法?
    机器学习——十大数据挖掘之一的决策树CART算法
    TypeScript环境搭建
    ASP.NET 开源导入导出库Magicodes.IE 完成Excel图片导入导出
    【翻译】.NET 5 Preview 1 发布
    SuperBenchmarker一个用.NET编写的压测工具
  • 原文地址:https://www.cnblogs.com/frankltf/p/11686054.html
Copyright © 2011-2022 走看看