docker 学习笔记(1)

docker

intro

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

docker engine

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

  • 服务器是一种长期运行的程序,称为守护程序进程-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)
原文地址:https://www.cnblogs.com/leafs99/p/docker_learning_01.html