docker 学习笔记(1)

docker

intro

  1. docker 是一个用于开发、交互和运行应用程序的开发平台。Docker 可以将应用程序与基础架构分开,从而能够快速交付软件。借助Docker,能够以与管理应用程序相同的方式来管理基础架构。
  2. docker 提供了在松散隔离的环境(称为容器)中打包和运行应用程序的功能。隔离和安全性能够在给定主机上同时运行多个容器。容器是轻量级的,由于它们不须要虚拟机管理程序的额外负载,而是直接在主机的内核中运行。这意味着与使用虚拟机相比,能够在给定的硬件组合上运行更多的容器。甚至能够在其实是虚拟机的主机中运行Docker容器!
  3. Docker提供了工具和平台来管理容器的生命周期:
    • 使用容器开发应用程序及其支持组件。
    • 容器成为分发和测试应用程序的单元。
    • 准备就绪后,能够将应用程序做为容器或协调服务部署到生产环境中。不管生产环境是本地数据中心,云提供商仍是二者的混合,其工做原理都相同。

docker engine

Docker Engine 是具备如下主要组件的客户端-服务器应用程序:docker

  • 服务器是一种长期运行的程序,称为守护程序进程-daemon( dockerd命令)。
  • REST API,它指定程序能够用来与守护程序进行通讯并指示其操做的接口。
  • 命令行界面(CLI)客户端(docker命令)。

  • docker CLI 经过 REST API 或者 CLI 命令控制 daemon 或者与之交互
  • daemon 建立管理对象,例如 images, containers, networks, and volumes

application

  • 容器很是适合持续集成和持续交付(CI / CD)工做流程
  • Docker的可移植性和轻量级的特性还使您能够轻松地动态管理工做负载,并根据业务需求指示实时扩展或拆除应用程序和服务
  • 在同一硬件上运行更多工做负载

namespaces

Docker 使用一种称为 namespaces 提供容器的隔离工做区的技术。运行容器时,Docker 会为该容器建立一组 命名空间安全

这些名称空间提供了一层隔离。容器的每一个方面都在单独的名称空间中运行,而且对其的访问仅限于该名称空间。服务器

Docker Engine 在Linux上使用如下名称空间:网络

  • pid:进程隔离(PID:process ID)
  • net:管理网络接口(NET:networking)
  • ipc:管理访问IPC资源(IPC:interProcess communication)
  • mnt:管理文件系统挂载点(MNT:mount)
  • uts:隔离内核和版本标识符。(UTS:Unix timesharing system)
相关文章
相关标签/搜索