zoukankan      html  css  js  c++  java
  • Docker 01 introduction

    Docker 的弱点:

    与虚拟机相比, 隔离性弱. Docker是进程之间隔离, 而虚拟机可实现系统级别隔离.

    与虚拟机相比, 安全性弱. Docker 的租户 Root 和 宿主机的 Root 等同, 一旦容器内的用户从普通权限提升为 Root 权限,它直接具备了宿主机的 Root 权限.

      而虚拟机的Root 权限, 只是针对于它所在虚拟操作系统的 Root 权限, 无法触碰到其他 App 的 Root 权限.

    与虚拟机相比, 管理性弱. Docker 管理工具还不算成熟, K8S 应该属于这个范畴.

    与虚拟机相比, 高可用和可恢复 弱. 虚拟化具备负载均衡, 高可用, 容错, 迁移和数据保护等通过生产经验的成熟保护机制, VM 可承诺 99.999%高可用.

    Docker 中的3个概念 

    Image(镜像) : Docker 运行容器的前提

    Container(容器)

    Repository(仓库): 存放镜像的地方

    镜像

    Docker 镜像可以看做是特殊的文件系统, 除了提供容器运行时所需的程序, 库, 资源, 配置等文件外, 还包含一些运行时准备的一些配置参数(匿名卷, 环境变量, 用户 等). 镜像不包含任何动态数据, 其内容在构建之后也不会被改变. 镜像是一堆只读层(read-only layer)的统一视角.

    从左边我们看到了多个只读层, 它们重叠在一起, 除了最下面一层, 其他层都会有一个指针指向下一层. 这些层是 Docker 内部实现细节, 并且能够在主机的文件系统上访问到.

    统一文件系统(Union File System) 技术能够将不同的层整合成一个文件系统, 为这些层提供了一个统一视角. 这样就隐藏了多层的存在, 在用户的视角看来, 只存在一个文件系统, 图的右边看到的视角.

    Container 容器

    容器的定义和镜像几乎一样,也是一堆层的统一视角, 唯一的区别是容器的最上面那一层是可读写的.

    容器 = 镜像 + 读写层.

    Repository 仓库

    Docker 仓库是几种存放镜像文件的场所.

    Docker 架构

    Docker 使用 C/S 结构, Docker 客户端与 Docker 服务器进行交互, Docker 服务端负责构建, 运行 和 分发 Docker 镜像.

    Docker 客户端 和 服务端可以运行在一台机器上,也可以通过 Restful, socket 或 网络接口与远程 Docker 服务端进行通信.

    Docker 常用命令

    Docker file

    Docker file 是自动构建镜像的配置文件,用户可以使用 Dockerfile 快速创建自定义的镜像. Dockerfile 命令非常类似shellscript.

    也就是说, 可以利用 Docker file 来自定义镜像.

    一般来说, Docker file 可以分为4部分:

    1. 基础镜像(父镜像)信息指令 FROM.

    2. 维护者信息指令 MAINTAINER

    3. 镜像操作指令 RUN, EVN, ADD 和 WORKID 等

    4. 容器启动指令 CMD, ENTRYPOINT 和 USER 等.

      

  • 相关阅读:
    CSU-ACM集训-模板-主席树
    Codeforces- Educational Codeforces Round 69
    Codeforces-Round#574 Div2
    CF-1183C Computer Game
    CSU-ACM2019暑假训练(2)
    CSU-ACM2019暑假集训(1)
    2019牛客网第二场-F题
    洛谷P1111 修复公路
    求强连通分量-korasaju算法
    并查集-路径优化+秩优化
  • 原文地址:https://www.cnblogs.com/moveofgod/p/12830198.html
Copyright © 2011-2022 走看看