docker
前言:
第一次接触docker是在两年前,那时候感觉云里雾里,只知道有很多类似于linux的命令,干着和linux操作系统类似的事情。最近在工作中又重新接触到了docker,前一段时间也看了一些教学视频,本来是看过就过了,现在觉得还是要留下点什么,才能印象深刻。
官网地址:
(最全以及最权威的信息往往在官网中,其他地方的信息都是围绕官网而衍生~)
简介:
首先对docker进行一个简单的介绍,docker是基于Go语言实现的开源项目,主要是为了是实现轻量级的操作系统虚拟化解决方案(虚拟化的本质:复用主机的原有内核+自己定制的文件系统),相当于一个mini版本的Linux(只包含Linux中最基础的命令)。
背景:
云计算和微服务的兴起,服务器硬件扩展便利,软件服务部署成为瓶颈。
相关组件:
(1)镜像(Images):类似于一个只读的模板文件,可以用来创建docker容器。
(2)容器(containers):从镜像创建的运行实例,用来运行应用。可以被启动、开始、停止、删除。每个容器都是互相隔离的,以保证容器中应用的安全。可以看作是一个简易版的Linux环境和运行在其中的应用程序。
(3)仓库:存放镜像文件的地方。分为私有仓库和共有仓库(最大公共仓库:Docker Hub),可以使用push命令将镜像上传到仓库,使用pull命令将镜像从仓库中下载到本地。另外,仓库注册服务器上往往存放多个仓库,每个仓库包含多个镜像,每个镜像有不同的标签。
容器 vs 虚拟机:
容器在Linux上本机运行,并与其他容器共享主机的内核。它运行一个独立的进程,不占用比任何其他可执行文件更多的内存,这使得它是轻量级的。相比之下,虚拟机(VM)运行成熟的“第三方”操作系统,通过管理程序虚拟访问主机资源。通常,虚拟机会产生比应用程序逻辑所消耗的更多的开销。