> ### `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