一、docker概述
docker是基于go语言实现的云开源项目,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布流行的linux和windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
二、docker的优点
系统平滑移植、容器虚拟化,从开发环境到系统上的部署更加方便,打破了程序及应用的观念,解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术,总而言之就是任何技术的突破,他都是基于省钱而突破的,docker的出现比传统的虚拟机技术更加的提高了内存和cpu的利用率,从而造成了更高效的使用
三、docker与传统虚拟机的对比
虚拟机是带环境安装的另一种解决方案,它可以在操作系统里面运行另一种操作系统,并且应用程序对此毫无察觉。所以说虚拟机看上去和真实系统一模一样,在我们不需要时可以对其随意删除,对于其他并不影响,让应用程序,操作系统和硬件三者之间的逻辑不变,然后虚拟机技术是基于安装在主操作系统上的虚拟机管理系统,创建虚拟机等于说是虚拟出各种硬件,在虚拟机里面配置服务是首先要在虚拟机上安装从操作系统,然后在从从操作系统中安装部署各种应用和服务。虚拟机的缺点是资源占用多、冗余步骤多、启动慢等而Docker是不用和虚拟机一样去完整的模拟出来一个完美的操作系统,而是去把你所需要的东西给打包成为一个容器,不需要去捆绑一整套操作系统,只需要把软件工作所必须的资源给打包成为一个镜像就可以了,而且每个容器都有自己的文件系统,容器之间没有自己的内核且也没有进行硬件虚拟,容器之间进程也不会相互影响,能区分计算资源。所以他比传统的虚拟机技术的好处就是系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一的运行。用点官方的话说就是docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统虚拟机则是在硬件层面实现虚拟化。与传统的虚拟机相比,docker优势体现为启动速度快、占用体积小。然后还有就是docker不需要硬件虚拟化,运行在docker容器上的程序是直接使用实际物理机的硬件资源,因此在cpu和内存利用率上docker更有优势,然后还有docker利用的是宿主机的内核,而不需要加载操作系统OS内核,不用和虚拟机一样重新加载一个操作系统内核,从而节省了时间和资源。然后还有就是docker镜像小,而虚拟机镜像大
四、docker的工作流程
docker client向docker daemon建立通信,然后client向daemon发送请求,在由守护进程接收命令管理运行容器,docker的daemon主要功能是提供docker server的功能使其可以接受docker client的请求,docker daemon是docker架构中的主要部分,docker engine是执行docker内部的一系列功能的,他的每个功能是以job形式存在的,在job的运行过程中,当本地没有镜像时,则从docker registry中下载镜像;当需要为docker创建网络环境时,通过网络管理驱动network driver创建并配置docker容器网络环境;当需要限制docker容器运行资源或执行用户指令操作时,则通过exec driver来完成
五、docker的安装
1、安装yum-utils库
yum install -y yum-utils
2、下载docker的那个源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3、安装docker包
yum install -y docker-ce
4、启动docker
5、查看docker版本
docker version
六、使用docker制作一个容器
1、使用docker下载一个镜像
docker pull centos //从镜像仓库拉取一个centos镜像
2、查看下载下来的镜像
3、使用下载好的docker镜像用来创建一个容器
docker run -itd -p 80:80 --name apache centos:latest //docker run 创建一个新的容器,并运行一个命令 -i 以交互模式运行容器,通常与 -t 同时使用;-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;-name 为容器指定一个名称;-d 后台运行容器,并返回容器ID;
4、查看容器状态
docker ps
标签:容器,操作系统,centos,部署,虚拟机,镜像,docker From: https://www.cnblogs.com/wangtiantian/p/18042965