Docker 个人笔记
在工作中我们需要运行在服务器当中的应用或程序需要去配置和下载很多运行时所需要的配置,这也叫做搭环境。如果是单个应用单个服务器的情况下,我们可能感受不到差异,但如果是多台服务器多个应用的情况,我们就需要去每台服务器上搭建好相应的环境,这样做非常复杂,而且在不同的操作系统当中可能配置也会存在些许的差异而导致我们应用运行出错,而Docker可以有效的解决问题,下面我们就来学习一下Docker。
什么是Docker
Docker是一个开源的容器引擎,通过打包的方式可在不同的系统上运行相同的环境,且Docker的容器是沙箱机制的,不会对外提供任何的API,进而保证了程序的安全性。有人可能会说这不是和虚拟机很像吗?其实并不是同一种东西,Docker只保留了程序运行所需要的环境,使用的还是原系统上的资源,通过Cgroup和namespace给每个容器分配好使用资源。
Docker的主要组成部分
- Docker Client 客户端
- Docker Daemon 守护进程
- Docker Image 镜像
- Docker Container 容器
Docker Client
顾名思义是Docker客户端,用来解析用户对Docker发出的指令,例:docker pull;docker push;docker images。
Docker Daemon
可以理解为Docker的服务器,用于接收客户端发送过来的请求,并通过不同的指令调用不同的JOB使我们完成Docker的功能。
Docker Image
Docker镜像可以理解为环境所需打包后的一个只读磁盘。
Docker Container
Docker容器是真正在运行的实例。容器依赖于镜像,是通过镜像而运行的实例叫做容器,容器不会对镜像有任何的影响,也就意味着只要装有Docker主机,使用相同的镜像就能运行同样的程序,而不产生任何问题。