Home avatar

个人知识星球,专注于全栈开发和AI应用

Docker每天学一点03 - 镜像

镜像是 Docker 容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。

如果我们想要创建自己的镜像,肯定要先了解镜像的内部结构。

hello-world 是 Docker 官方提供的一个镜像,通常用来验证 Docker 是否安装成功。 我先从这个最小镜像开始说下,之前已经把它下载下来了。

Docker每天学一点02 - 架构详解

Docker 的核心组件包括:

  1. Docker 客户端 - Client
  2. Docker 服务器 - Docker daemon
  3. Docker 镜像 - Image
  4. Docker 注册中心 - Registry
  5. Docker 容器 - Container(镜像的运行实例)

Docker 架构图如下:

https://xnstatic-1253397658.file.myqcloud.com/docker04.png

Docker 采用的是 Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。 客户端和服务器可以运行在同一个 Host 上,客户端也可以通过 socket 或 REST API 与远程的服务器通信。

Docker每天学一点01 - 入门

容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。 开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。

常见互联网高可用架构

高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一, 它通常是指,通过设计减少系统不能提供服务的时间。

单点往往是系统高可用最大的风险和敌人,应该尽量在系统设计的过程中避免单点。 高可用保证的原则是"集群化",或者叫"冗余":只有一个单点,挂了服务会受影响。 如果有冗余备份,挂了还有其他backup能够顶上。

Java泛型的PECS原则

在泛型编程时,使用部分限定的形参时,<? super T><? extends T>的使用场景容易混淆, PECS原则可以帮助我们很好记住它们:提供者(Provider)使用extends,消费者(Consumer)使用super。

聊聊Reactor I/O模型

上一篇介绍了Unix系统支持的I/O模型,以及相应的在Java中的实现方式。本篇重点讲解一下Reactor模型原理和实现机制。

I/O多路复用又被称为"事件驱动",就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪), 能够通知程序进行相应的读写操作,技术上是通过调用操作系统的select、pselect、poll、epoll来实现。