一、Docker概述
1、什么是Docker
Docker是一个开源的应用容器引擎,它基于go语言开发,并遵从Apache2.0开源协议。使用Docker可以让开发者封装他们的应用以及依赖包到一个可移植的容器中,然后发布到任意的Linux机器上,也可以实现虚拟化。Docker 容器完全使用沙箱机制,相互之间不会有任何接口,这保证了容器之间的安全性。
Docker诞生于2013年初,目前有两个版本,Community Edition(CE,社区版)和Enterpise Edition(EE,企业版)。其中Docker社区版是免费开源的,对于个人和小团队来说是比较理想的选择; Docker 企业版则是收费的,是专门为企业和大型IT团队提供的,用于要求比较产格的商业应用中。
对于初学者而言,使用Docker社区版就足以满足需求,所以此文将针对Docker社区版的使用进行讲解。
2、Docker特点
在学习一项技术时,了解该技术的特点才能更好地实际运用。Docker 作为当前主流的一个开源容器引擎,其主要特点如下。
①.更快速的交付和部署
开发者可以使用一个标准的Docker镜像来构建一套开发容器, 开发完成之后,运维人员可以直接使用这个容器来部署代码。Docker 可以快速创建容器以及快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。Docker容器轻,且启动速度快,可以大量地节约开发、测试和部署的时间。
②.更高效的虚拟化
Docker容器在运行时,不需要额外的虚拟机程序的支持。由于它是内核级的虚拟化,所以可以实现更高的性能和效率。
③.更轻松的迁移和扩展
Docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人计算机和服务器等。这种良好的兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个平台,十分有利于应用的迁移和扩展。
④.更简单的管理
使用Docker, 只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。
除上述几个特点外,Docker还具有实现逻辑分离、适合与面向服务的架构配合使用等特点。
3、Docker与虚拟机的区别
4、Docker的引擎
Docker Engine 中包含了三个核心组件(Docker CLI,REST API和Docker daemon),这三个组件的具体说明如下。
dockerCLI ( command line interface ):
表示Docker命令行接口,开发者可以在命令行由使用Docker相关指令与Docker守护进程进行交互,从而管理诸如image (镜像) container(容器人network (网络)和data volumes (数据卷)等实体。
REST API:
表示应用程序API接口,开发者通过该API接口可以与Docker的守护进程进行交互,从而指示后台进行相关操作。
docker daemon:
表示Docker的服务端组件,它是Docker架构中运行在后台的一个守护进程,可以接收并处理来自命令行接口及API接口的指令,然后进行相应的后台操作。
对于开发者而言,既可以使用编写好的脚本文件通过REST API来实现与Docker进程交互,也可以直接使用Docker相关指令,通过命令行接口来与Docker进程交互,而其他一些Docker应用则是通过底层的API和CLI进行交互的。
5、Docker的架构
二、Ubuntu16.0.4安装教程
离线安装所需文件(Ubuntu16.0.4&Docker):百度云链接:https://pan.baidu.com/s/1nNUjOwG1i_Bc9MIl8YqWfg
提取码:cqtw
1、打开vmwareWorkstation,新建虚拟机,使用上述链接中的Ubuntu镜像
虚拟机创建不多说明,网上教程一大把
2、启动后会弹出一个安装窗口,在左边选择“中文(简体)”,然后在右边点选“安装ubuntu”。
3、进入准备安装ubuntu我们可以不用选择直接“继续”。
4、选择“其它选项”继续。
5、接着选择安装的硬盘分区,如果新硬盘可以选择“新建分区表”。
注:这里如果桌面看不见“新建分区表”按钮,按住alt键向下拖动窗口即可出现
6、如果已经有空闲分区,可以选择要安装到的分区,选择左下角的“+”加号。
挂载点选择“/”作为根分区。
7、接着就是选择“时区”,选择“键盘布局”。
8、填写自己的用户名,设置密码。
9、然后就可以进入安装界面,等待安装完成重启就可以进入我们的ubuntu16.04系统桌面了。
10、重启以后进行Ubuntu桌面大小的设置
三、Docker安装教程
1、安装介绍
- 在线安装
- 离线安装
- 脚本文件安装
在这里重点讲述离线安装方式
2、在线安装
3、离线安装
1、镜像下载
注:这里为了避免出现其它错误,我们选择上小节提供的百度云链接进行Docker下载。
2、更新apt的索引包
3、安装ssh服务
4、安装curl(connect URL)
验证安装是否成功:
注:当ssh和curl安装完成后即可利用Xshell工具连接Ubuntu,如下图所示
5、创建存放安装文件的文件夹
6、使用Xftp工具将本地下载好的安装文件上传至Docker目录
7、通过下载的.deb文件进行离线安装,在终端中输入如下指令:
sudo dpkg -i /home/cc/Docker/docker-ce_17.09.0-ce-0-ubuntu_amd64.deb
使用命令验证安装结果:sudo docker run hello-world
8、查看Docker版本及相关信息
☛多学一招
4、脚本文件安装
5、Docker的底层技术
Docker使用了一系列的底层技术来充分发挥其技术特色,这些底层技术包括有Namespaces、Cotol groups. Union file systems和Container format等,其具体含义如下。
1. Namespaces (名称空间)
Docker使用名称空间来为容器提供隔离的工作空间。当个容器运行时,Docker 就会为该容器创建一系列的名称空间,并为名称空间提供层隔离。 每一个容器都运行在相对隔离的环境下,对其他名称空间是相对受限的。
2. Control groups (控制组)
基于Linux系统的Docker引擎也依赖于另一项叫做Control groups ( cgroups,控制组)的技术。控制组可以对程序进行资源限定,并允许Docker引擎在容器间进行硬件资源共享以及随时进行限制和约束,例如,开发者可以限制某特定容器的可用内存。
3. Union file systems (联合文件系统)
联合文件系统(UnionFS )是一种分层、轻量级并且高性能的文件系统,它支持将文件系统的修改作为一一次提交来-层层地叠加, 同时可以将不同目录挂载到同一个虚拟文件系统下。不同Docker容器可以共享些基础的文件系统层, 与自己独有的改动层一起使用, 可以大大地提高存储效率。Docker目前支持的联合文件系统包括AUFS、btris、 vis 和DeviceMapper。
4. Container format (容器格式)
Docker引擎将名称空间、控制组和联合文件系统组合成一个叫做容 器格式的整体。当前默认的容器格式是libcontainer,未来Docker可能会通过与其他技术(如BSD Jails 或者SolarisZzones )的集成使用来开发其他的容器格式。