> ### `docker`
* **Docker**使用 Google 公司推出的**Go 语言**进行开发实现,基于**Linux 内核**的`cgroup`,`namespace`,以及`AUFS`类的`UnionFS`等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。
<br/>
> ### `docker`底层技术
* `Linux Namespace`,Linux提供的一种内核级别环境隔离的方法。
* `CGroup`,Linux Control Group,是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、磁盘输入输出等)。
<br/>
> ### 虚拟机与容器的区别
* 虚拟机
* 虚拟机技术通过Hypervisor层抽象底层基础设施资源,在软件层面上通过模拟硬件的输入和输出,让虚拟机的操作系统得以运行在没有物理硬件的环境中(也就是宿主
机的操作系统上)。
* 虚拟机是把支撑硬件都进行虚拟化,相当于每个虚拟机有自己虚拟化出来的硬件,有自己的kernel,这样虚拟机启动的时候需要先做开机自检,启动kernel,启动用户进程等一系列行为,造成启动慢。
* `docker`容器
* 宿主机和虚拟机的kernel是一致的(与虚拟机区别:不用做硬件输入输出的搬运工了,只需要做kernel输入输出的搬运工即可),这种虚拟机被命名为操作系统层虚拟化,也被叫做容器。
* 由于在虚拟机的系统中,虚拟机认为自己有独立的文件系统,进程系统,内存系统,等等一系列,所以为了让容器接近虚拟机,也需要有独立的文件系统,进程系统,内存系统,等等一系列,为了达成这一目的,宿主机系统采用的办法是:只要隔离容器不让它看到主机的文件系统,进程系统,内存系统,等等一系列,那么容器系统就是一个接近虚拟机的玩意了。
<br/>
> ### Docker使用
* Docker架构
* Docker daemon,运行在宿主机的docker守护进程
* images,镜像
* container,容器
* register,注册中心,集中存储和分发镜像的服务
<br/>
> ### 常用命令
* 镜像
`docker images -a`
<br/>
<br/>
***
参考:
[DOCKER基础技术:LINUX CGROUP](https://coolshell.cn/articles/17049.html)
- asD
- Java
- Java基础
- Java编译器
- 反射
- collection
- IO
- JDK
- HashMap
- ConcurrentHashMap
- LinkedHashMap
- TreeMap
- 阻塞队列
- java语法
- String.format()
- JVM
- JVM内存、对象、类
- JVM GC
- JVM监控
- 多线程
- 基础概念
- volatile
- synchronized
- wait_notify
- join
- lock
- ThreadLocal
- AQS
- 线程池
- Spring
- IOC
- 特性介绍
- getBean()
- creatBean()
- createBeanInstance()
- populateBean()
- AOP
- 基本概念
- Spring处理请求的过程
- 注解
- 微服务
- 服务注册与发现
- etcd
- zk
- 大数据
- Java_spark
- 基础知识
- Thrift
- hdfs
- 计算机网络
- OSI七层模型
- HTTP
- SSL
- 数据库
- Redis
- mysql
- mybatis
- sql
- 容器
- docker
- k8s
- nginx
- tomcat
- 数据结构/算法
- 排序算法
- 快排
- 插入排序
- 归并排序
- 堆排序
- 计算时间复杂度
- leetcode
- LRU缓存
- B/B+ 树
- 跳跃表
- 设计模式
- 单例模式
- 装饰者模式
- 工厂模式
- 运维
- git
- 前端
- thymeleaf
- 其他
- 代码规范
- work_project
- Interview