Docker简介

虚拟化技术

如果说主机时代比拼的是单个服务物理性能(如CPU,内存)的强弱,那么云时代,最为看重的则是通过虚拟化技术所构建的集群的处理能力。
虚拟化技术是指将计算机的物理资源进行抽象,封装成一个个独立的分区,每一个分区可运行不同的操作系统,分区之间相互隔离,又可共享计算机的物理资源。
广义来说,虚拟化技术都是基于软件来实现的。常见的虚拟化产品 有VirtualBox、KVM(腾讯云)、VMware Workstation和VMware ESX(它在其4.0版,被改名为VMware vSphere)、Xen(阿里云)

Docker虚拟化技术

docker是一个应用程序,用go语言编写,基于Linux容器(LXC)设计思想。简单来说,Docker容器可以理解为一种轻量级的沙盒,每一个沙盒内运行着自己独有操作系统或者应用程序,相互隔离,容器之间可以通过网络互相通信。
docker容器的特点:轻量、简单、易于管理、易于迁移。
举一个例子,假设现在需要搭建一个LAMP(Linux+Apache+Mysql+Php)的环境,按照传统做法,需要先安装Linux的操作系统,而后在操作系统中安装相关软件,再然后才能将web网站放到服务器上面运行。如果使用docker来实现,大致需要2步,拉取一个LAMP的Docker镜像,启动一个docker并配置web网站部署包所在文件夹到docker的映射路径。不用去关注基础组件的安装和维护,Docker镜像已经为我们做了这些。

Docker虚拟化技术和虚拟机(VM)对比

  • 虚拟机运行在虚拟硬件上, 应用运行在虚拟机内核上。而 docker daemon 是宿主机上的一个进程, 应用只是 docker daemon 的一个子进程, 换句话说, 应用直接运行在宿主机内核上

  • 虚拟机需要特殊硬件虚拟化技术支持, 因而只能运行在物理机上。docker 没有硬件虚拟化, 因而可以运行在物理机、虚拟机, 甚至 docker 容器内(嵌套运行)

  • 因为没有硬件虚拟化及多运行一个 Linux 内核的开销, 应用运行在 docker 上比虚拟机上更轻、更快

Docker核心组件

镜像

Docker镜像可以看做是一个部署包,类似web程序的部署包。是一种特殊的文件系统,内部包含了容器运行时需要的操作系统或程序或库或静态文件,还包含了容器运行时需要的配置参数(如环境变量,用户等)。镜像在构建完成之后,内容就是固定了的,不会被修改。

仓库

Docker仓库就是存方Docker镜像的空间,并提供专门的上传和下载功能

容器

Docker容器是一个从Docker镜像创建的实例,可以理解为一个运行着的应用程序,这个应用程序有可能是一个运行着的linux操作系统,也可能是一个Nginx服务。Docker容器能够根据镜像创建实例并对外提供资源和服务,得益于Docker引擎,目前Docker引擎有两种,一个是CE(社区版)一个是EE(企业版)。

Docker入门

使用LinuxMint演示

  • 安装
sudo apt  install  docker.io

  • 验证是否安装成功
sudo  docker info 

  • 拉取hello-world镜像
sudo docker pull  hello-world 

  • 查看本地镜像列表
sudo  docker  image   ls 

  • 运行hello-world
sudo   docker run  hello-world

关于hello-world镜像的介绍已经在终端中打印出来了。

引用

知乎: https://www.zhihu.com/question/27561972
书籍:《Docker技术入门和实践》
博客: http://jm.taobao.org/2016/05/12/introduction-to-docker/

posted @ 2020-07-31 15:57  Naylor  阅读(732)  评论(0编辑  收藏  举报