Docker 1.二进制安装以及基本概念

本文介绍了Docker的二进制安装步骤,包括依赖组件和启动服务。随后,文章详细阐述了Docker的基本概念,如Docker守护进程、客户端、镜像仓库、对象类型(如镜像和容器)、服务以及底层技术,如命名空间、控制组和联合文件系统。

Docker 1.二进制安装以及基本概念

0.Docker安装

  • 依赖:

    1. 64位操作系统
    2. Linux内核3.10以上
    3. iptables v1.4以上
    4. git v1.7以上
    5. XZ Utils v4.9以上(yum search xz之后安装所有相关文件)
  • 安装启动步骤

    1. 下载解压二进制文件
    2. 解压
    3. 进入解压文件,将其中的二进制文件copy到/usr/bin
    4. sudo dockerd & 启动docker服务
  • 普通用户下运行docker报权限错误,则更改/var/run/docker.sock的权限为0666

  • 停止docker服务后,无法重启-》删除var/lib 以及var/run下相关的docker文件

1. Docker的基本概念

  • 基本概念

    1. The Docker daemon(dockerd)

      • 监听Docker API 请求
      • 管理Docker对象,例如Image,container,networks,volumes
      • 可以与其他Daemons通信来管理Docker 服务
    2. The Docker Client(docker)

      • 使用Docker API与Docker进行交互。可以与多个daemon进行通信。
    3. Docker registries

      • 存储Docker images.
      • Docker 默认从Docker Hub上寻找images,可以通过修改配置文件自定义来设置源
      • pull和push/run命令均作用于配置的registry上
    4. Docker object

      • 使用Docker,实际上就是对image,container,networks,volumes,plugins以及其他对象的创建和使用。
      1. Image

        • 用于创建Docker容器的只读的模版文件。通常一个Image 是基于其他Image并做一些客制化的修改而得来的。
        • 为了创建自己的Image,首先需要创建一个Dockerfile文件,在Dockerfile中需要定义创建Image的步骤。Dockerfile中的每一个制定都会在Image中创建一个layer,当你修改Dockerfile并重建Image时,只有被修改过的layer会被重建。(增量式修改)
      2. Containers

        • Container 是一个Image的可运行的实例

        • 可以使用Docker API/CLI 对Container 进行create ,start,stop,move,delete等操作

        • 一个Container可以被连接到一个或多个网络中,也可以连接到制定的存储空间,或基于Container当前的状态创建一个新的image.

        • 默认情况下,一个Container与其他Container以及它的宿主机是独立没有关联的。

          也可以自定义Container的网络,存储以及其他底层的子系统是如何与其他Container和宿主机隔离的。

        • 一个Container由Image以及其启动时传入的配置参数来进行定义。当一个Container被移除时,除了存储到磁盘中的文件外,任何对它所做的更改均会消失。

        • Container启动时两个比较重要的步骤是,1.创建一个读写的文件系统作为Container而最终层,从而生成Container自己的本地文件系统 2. 为Container创建网络接口,如果没有传入参数进行设置,则使用默认的网络进行沛卓,同时,Container可以使用主机的网络连接

      3. Services

        • Services 用于在不同的Docker daemons间隔离Containers。构建集群。每一个集群成员时一个Docker daemon,并通过Docker API进行通信。
        • 默认情况下,Service会对所有工作节点进行负载均衡操作。对于消费者而言整个Docker Service作为一个独立的应用服务。
    5. 底层术语

      1. NameSpace

        • Docker使用Namespace 的概念来为Container管理独立的工作空间。当启用一个Container时,Docker自动为该Container生成一系列namespace
        • namespaces 用于实现Container各层的相对独立,container的每一个功能运行在独立的namespace上,并且其通过namespace 限制其访问权限。
        • 在Linux上常用的namespace :pid,net,ipc,mnt,uts等等
      2. Control Groups

        • Control Groups 简写为cgroup,用于限定应用访问某些特定的资源。
        • Docker Engine 通过 cgroup的概念实现了 对containersv之间使用共享硬件资源的控制。强化了权限机制。
      3. Union file system

        • Union file system,UnionFS,是创建Container layer是建立的文件系统,是创建Container的基础。
        • Docker Engine可选的UnionFS参数有AUFS,btrfs,vfs,以及DeviceMapper等。
      4. Container format

        • Docker Engine 将namespaces,control groups,UnionFS组合包装起来称作一个Container format.
        • 默认的Container format时libcontainer
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值