使用Kind快速构建Kubernetes集群

现在安装 Kubernetes 集群已经变得越来越简单了,出现了很多方案,各种方案都有自己适合的使用场景。虽然我们可以很快速在云环境下面启动一个 Kubernetes 集群,但是对于开发人员通常更喜欢能够快速上手的东西,Kubernetes in Docker(Kind)这个工具就可以通过创建容器来作为 Kubernetes 的节点,我们只需要在机器上安装 Docker 就可以使用,它允许我们在很短的时间内就启动一个多节点的集群,而不依赖任何其他工具或云服务商。

前面的文章也讲过如何在本地使用Vagrant来快速搭建Kubernetes集群,但还是有点麻烦,而且需要自己去定制Vagrant Box,有一定的技术门槛。

[阅读全文]

Docker最佳实践

了解了用于构建 Dockerfile 的基本方法后,我们在编写 Dockerfile 的时候并没有一些强制要求,导致很多构建的镜像不符合一些最佳实践,典型的就是镜像构建的层数非常多,对一些基本指令的区别不是很清楚。下面介绍 Dockerfile 在实际使用中的一些最佳的实践方式。

[阅读全文]

Docker的底层技术

Docker最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runCcontainerd

Docker 本质就是宿主机的一个进程,Docker 是通过 namespace 实现资源隔离,通过cgroup 实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作。

传统的虚拟机通过在宿主主机中运行 hypervisor 来模拟一整套完整的硬件环境提供给虚拟机的操作系统。虚拟机系统看到的环境是可限制的,也是彼此隔离的。 这种直接的做法实现了对资源最完整的封装,但很多时候往往意味着系统资源的浪费。 例如,以宿主机和虚拟机系统都为 Linux 系统为例,虚拟机中运行的应用其实可以利用宿主机系统中的运行环境。

[阅读全文]

使用Docker构建应用 | 第四篇:Docker容器

容器(Container)是Docker的核心组件之一,它是用于运行镜像的一个沙箱环境,是一个从镜像创建的应用运行实例,镜像打包、构建完成后最终都会运行于容器中。容器具有良好的隔离性,容器之间是相互隔离、互不可见。本文将介绍Docker容器的创建与管理,并以容器的生命周期为主线介绍容器的创建、管理、停止,到最终删除。

[阅读全文]

使用Docker构建应用 | 第二篇:Dockerfile详解

1. Dockerfile文件格式

Dockerfile文件格式如下:

# Comment
INSTRUCTION arguments
# 注释
指令 参数

Dockerfile文件中指令不区分大小写,但为了更易区分,约定使用大写形式。

Docker 会依次执行Dockerfile中的指令,文件中的第一条指令必须是FROMFROM指令用于指定一个基础镜像。

[阅读全文]

使用Docker构建应用 | 第一篇:Docker安装

如果你是MacOS系统,可以直接去官网下载dmg文件,下载地址

CentOS 7 安装 Docker CE

警告:切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker.

1. 准备工作

1.1 系统要求

Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。

[阅读全文]