Docker 1.二进制安装以及基本概念
0.Docker安装
-
依赖:
- 64位操作系统
- Linux内核3.10以上
- iptables v1.4以上
- git v1.7以上
- XZ Utils v4.9以上(yum search xz之后安装所有相关文件)
-
安装启动步骤
- 下载解压二进制文件
- 解压
- 进入解压文件,将其中的二进制文件copy到/usr/bin
- sudo dockerd & 启动docker服务
-
普通用户下运行docker报权限错误,则更改/var/run/docker.sock的权限为0666
-
停止docker服务后,无法重启-》删除var/lib 以及var/run下相关的docker文件
1. Docker的基本概念
-
基本概念
-
The Docker daemon(dockerd)
- 监听Docker API 请求
- 管理Docker对象,例如Image,container,networks,volumes
- 可以与其他Daemons通信来管理Docker 服务
-
The Docker Client(docker)
- 使用Docker API与Docker进行交互。可以与多个daemon进行通信。
-
Docker registries
- 存储Docker images.
- Docker 默认从Docker Hub上寻找images,可以通过修改配置文件自定义来设置源
- pull和push/run命令均作用于配置的registry上
-
Docker object
- 使用Docker,实际上就是对image,container,networks,volumes,plugins以及其他对象的创建和使用。
-
Image
- 用于创建Docker容器的只读的模版文件。通常一个Image 是基于其他Image并做一些客制化的修改而得来的。
- 为了创建自己的Image,首先需要创建一个Dockerfile文件,在Dockerfile中需要定义创建Image的步骤。Dockerfile中的每一个制定都会在Image中创建一个layer,当你修改Dockerfile并重建Image时,只有被修改过的layer会被重建。(增量式修改)
-
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可以使用主机的网络连接
-
-
Services
- Services 用于在不同的Docker daemons间隔离Containers。构建集群。每一个集群成员时一个Docker daemon,并通过Docker API进行通信。
- 默认情况下,Service会对所有工作节点进行负载均衡操作。对于消费者而言整个Docker Service作为一个独立的应用服务。
-
底层术语
-
NameSpace
- Docker使用Namespace 的概念来为Container管理独立的工作空间。当启用一个Container时,Docker自动为该Container生成一系列namespace
- namespaces 用于实现Container各层的相对独立,container的每一个功能运行在独立的namespace上,并且其通过namespace 限制其访问权限。
- 在Linux上常用的namespace :pid,net,ipc,mnt,uts等等
-
Control Groups
- Control Groups 简写为cgroup,用于限定应用访问某些特定的资源。
- Docker Engine 通过 cgroup的概念实现了 对containersv之间使用共享硬件资源的控制。强化了权限机制。
-
Union file system
- Union file system,UnionFS,是创建Container layer是建立的文件系统,是创建Container的基础。
- Docker Engine可选的UnionFS参数有AUFS,btrfs,vfs,以及DeviceMapper等。
-
Container format
- Docker Engine 将namespaces,control groups,UnionFS组合包装起来称作一个Container format.
- 默认的Container format时libcontainer
-
-
本文介绍了Docker的二进制安装步骤,包括依赖组件和启动服务。随后,文章详细阐述了Docker的基本概念,如Docker守护进程、客户端、镜像仓库、对象类型(如镜像和容器)、服务以及底层技术,如命名空间、控制组和联合文件系统。

5296

被折叠的 条评论
为什么被折叠?



