目录
Docker是什么
Docker是一个开源的应用容器引擎,基于go语言开发遵循apache2.0协议开源,Docker是在Linux上运行的开源工具,给应用创建一个轻量级的,可移植的容器。Docker容器没有CPU和内存上的额外开销,适合开发测试环境。
Docker是一个用于开发、交付和运行应用程序的开放平台。Docker能够将应用程序与基础架构分开,从而可以快速交付软件。可以与管理应用程序相同的方式来管理基础架构。
Docker与虚拟机的区别是什么?
虚拟机通过添加Hypervisor层(虚拟化中间层),虚拟出网卡、内存、CPU等虚拟硬件,再在其上建立虚拟机,每个虚拟机都有自己的系统内核。而Docker容器则是通过隔离(namesapce)的方式,将文件系统、进程、设备、网络等资源进行隔离,再对权限、CPU资源等进行控制(cgroup),最终让容器之间互不影响,容器无法影响宿主机。与虚拟机相比,容器资源损耗要少。同样的宿主机下,能够建立容器的数量要比虚拟机多,但是虚拟机的安全性要比容器稍好,而docker容器与宿主机共享内核、文件系统等资源,更有可能对其他容器、宿主机产生影响。
Docker三大核心
镜像
Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向Docker容器引擎的只读模板。通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时间,库、环境变量、和配置文件。Docker镜像也是一个压缩包,只是这个压缩包不只是可执行文件,环境部署脚本,它还包含了完整的操作系统。因为大部分的镜像都是基于某个操作系统来构建,所以很轻松的就可以构建本地和远端一样的环境,这也是Docker镜像的精髓。
容器
Docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,以保证平台的安全性。可以把容器看做是一个简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。
仓库
仓库注册服务器上往往存放着多个仓库,每个仓库中包含了多个镜像,每个镜像有不同标签(tag)。仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub:https://hub.docker.com,存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云等。
Docker应用场景
Web应用自动化打包、发布、自动化测试、持续集成和在服务型环境中部署和调整数据库或其他的后台应用或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
Docker的优点
灵活:即使是最复杂的应用也可以集装箱化。
轻量级:容器利用和共享主机内核。
可互换:可以即时部署更新和升级。
便携式:可以在本地构建,部署到云等任何地方运行。
可扩展:可以增加和分发容器副本。
可堆叠:可以垂直和即时堆叠服务。
安装Docker
执行以下安装命令去安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager
–add-repo
https://download.docker.com/linux/centos/docker-ce.repo
[root@centos7 ~] yum -y install docker-ce docker-ce-cli containerd.io
[root@centos7 ~]# docker ps --查看docker