Docker是一个虚拟环境容器,可以将你的开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中。这种关系学过Java的同学很容易理解,就好比Java应用程序与JVM的关系,你只要愉快地编写一次HelloWorld
,JVM可以保证你四处Say Hi。
docker的Logo是大鲸鱼+集装箱:鲸鱼就是docker,货物(应用)都在集装箱里(Container),各种各样的操作系统就是大海。无论是红海还是黑海,docker载着它的集装箱都可以保证货物与世无争。
- 问:什么是Docker?
答:Docker只是一个工具,他可以帮助解决如安装、拆卸、升级、分发、信任和管理软件等常见问题。它是开源的Linux软件。
Docker包括一个命令行程序、一个后台守护进程,以及一组远程服务。他解决了常见的软件问题,并简化了安装、运行、发布和删除软件。这一切能够实现是通过使用一项UNIX技术,称为容器。
Docker使用底层技术的是2007年就已经成为Linux一部分的Linux命名空间
和cgroups
。Docker并不提供容器技术,但它使得容器更容易使用。
我们不生产水,就搬搬。
-
问题:容器是不是虚拟化?
答:容器不是虚拟化。在没有Docker的时代,企业通常使用硬件虚拟化(虚拟机),以提供隔离。
Docker容器不使用硬件虚拟化。运行在Docker容器中的程序接口和主机Linux内核直接打交道。因为容器中运行的程序和计算机操作系统之间没有额外的中间层,
没有资源被冗余软件的运行或虚拟硬件的模拟而浪费掉。这是一个很重要的区别。Docker不是一个虚拟化技术,相反,它可以帮助使用已经内置到操作系统中的容器技术。 -
问题:什么是操作系统?
答:从广义上讲,操作系统是所有用户程序和计算机上运行的硬件之间的接口。 -
问题:如何运行Docker?
答:运行Docker可以认为是用户空间运行着的两个程序。
1、Docker守护进程,这个进程应始终处于运行状态(后厨)。
2、Docker CLI,它是与用户交互的Docker程序(服务员)。 -
问题:Docker构建的容器隔离包括哪8个方面?
答:这八个方面:
1、PID命名空间-进程标识符和能力。
2、UTS命名空间-主机名和域名。
3、MNT命名空间-文件系统访问和结构。
4、IPC命名空间-通过共享内存的进程间通信。
5、NET命名空间-网络访问和结构。
6、USER命名空间-用户名和标识。
7、chroot()-控制文件系统根目录的位置。
8、cgroups-资源保护。
Linux的命名空间
和cgroup
管理着运行时的容器。Docker采用另一套技术,就像运输集装箱那样来为文件提供容器。 -
问题:什么是镜像?
答:Docker通过一种打包和分发的软件,完成传统容器的封装。这个用来充当容器分发角色的组件称为镜像。
Docker镜像,是一个容器中运行程序的所有文件的捆绑快照。镜像在Docker生态系统中是可交付的基本单位。 -
问题:Docker解决了什么问题?
答:
1、组织有序。管理并隔离软件运行的依赖关系。
2、提高可移植性。可以让应用程序忽略语言、操作系统、运行环境的不同。
3、保护你的机器。容器限制了一个程序对其他程序带来影响范围、可访问的数据和系统资源的影响范围。
快速,一致地交付您的应用程序
响应式部署和扩展
在同一硬件上运行更多工作负载
-
问题:Docker的重要性?
答:
1、Docker提供了所谓的抽象。抽象允许你以简化的方式处理复杂的工作。
2、有一个重要的推广使用容器和Docker的软件社区。
3、他为PC端所做的像应用商店为你的手机所做的一样。
4、通过操作系统实现的更好、更先进的隔离功能。 -
问题:运行hello_world,背后发生了什么?
答:docker run dockerinaction/hello_world
这个例子中发生了好几件事情。
1、可以使用docker run命令来启动一个容器。该命令触发安装、运行序列,以及暂停在容器中的程序。具体流程如下:
docker run -->Docker在本机中寻找镜像 --> 判断是否已经安装? --> Docker在Docker Hub上查找镜像 --> 判断是否在Docker Hub上? -->Docker下载该镜像
--> 在本机中安装该镜像 --> Docker创建一个新的容器并启动该程序 -->容器运行起来了
2、在容器中运行的程序是dockerinaction/hello_world。这就是所谓的仓库(或镜像)的名称。可以把仓库的名称认为是安装或运行程序的名称(就像“和平精英”)。 -
我想试试docker?
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
使用官方安装脚本自动安装,安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
点:docker入门、docker安装
线:容器化
面:云计算
by 暮小七
~
网友评论