前言
环境:centos7.9 docker version 20.10.9
什么是docker
docker是一个开源的容器引擎,让开发者可以打包他们的应用程序以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,dockers也可实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
docker的工作原理
docker是一个Client-Server结构的系统,docker守护进程运行在宿主机上,守护进程从客户端接受命令并管理运行在主机上的容器,容器是一个运行时环境,这就是我们说的集装箱。
docker的组成
一个完整的docker有以下几个部分组成:
1、docker client,客户端,为用户提供一系列可执行命令,用户用这些命令实现跟 docker daemon 交互;
2、docker daemon,守护进程,一般在宿主主机后台运行,等待接收来自客户端的请求消息;
3、docker image,镜像,镜像run之后就生成为docker容器;
4、docker container,容器,一个系统级别的服务,拥有自己的ip和系统目录结构;运行容器前需要本地存在对应的镜像,如果本地不存在该镜像则就去镜像仓库下载。
docker 使用客户端-服务器 (C/S) 架构模式,使用远程api来管理和创建docker容器。docker 容器通过 docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。
docker采用 C/S架构,docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者restful api 来进行通信。
docker的特点、优点
1、传统的虚拟机要部署10个不用的应用需要起10台虚拟机,而docker只需要起10个容器即可。
2、docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用。
3、传统的虚拟机技术是虚拟出一整套硬件后再在其上安装一个完整的操作系统,在该操作系统上运行业务应用。
4、docker技术的三大核心概念:镜像、容器、仓库。
容器和虚拟机的对比
1、传统的虚拟机技术是虚拟出一整套硬件后再在其上安装一个完整的操作系统,在该操作系统上运行业务应用,该完整的操作系统包括linux内核与Linux发行版,所以会占用大量宿主机的物理资源,比如CPU,内存等。
2、容器共享宿主机的内核,应用之间相互隔离,对应用软件和其依赖进行打包为镜像 ,可以做到一个镜像到处运行,这比传统的安装应用方便了很多,也避免了传统应用环境的不同导致安装应用困难繁琐。