1.Docker简介
1.1传统开发流程存在的问题
为了解决开发人员和运维人员之间的协作关系,加快应用交付速度,越来越多的企业引入了DevOps这一概念。但是,传统的开发过程中,开发、测试、运维是三个独立运作的团队,团队之间沟通不畅,开发运维之间冲突时有发生,导致协作效率低下,产品交付延迟, 影响了企业的业务运行。
- DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
- 它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。
采用Docker技术解决
Docker技术将应用以集装箱的方式打包交付,使应用在不同的团队中共享,通过镜像的方式,应用可以部署于任何环境中。
以容器方式交付的Docker技术支持不断地开发迭代,大大提升了产品开发和交付速度。
1.2Docker简介
Docker——基于容器技术的 轻量级 虚拟化解决方案。
Docker是一个构建在LXC(Linux Container容器)之上, 基于进程容器的轻量级VM解决方案,实现了一种应用程序级别的资源隔离及配额。Docker起源于 PaaS提供商dotCloud基于go语言开发,遵从Apache2.0开源协议。
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口。
- 为用户提供了创建和管理容器的便捷界面(包括命令行和API)。
- 微软,红帽Linux,IBM,Oracle等主流IT 厂商已经在自己的产品里增加对Docker的支持。
- Google 每周启动超过20亿个容器进行业务服务,于上个世纪90年代已经开始大规模使用容器技术。
1.3Docker VS 虚拟机
1.4Docker的应用场景
1.5Docker给我们带来的好处
2. Docker基本概念及架构
2.1Docker的三个组件:镜像、容器、仓库
Docker的三个组件:
- Docker镜像 是用于创建 Docker 容器的模板
- .Container容器 是独立运行的一个或一组应用,是镜像运行时的实体。
- Docker仓库 用来保存镜像,可以理解为代码控制中的代码仓库。
镜像与容器的关系:
- 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
2.2Docker架构
2.3Docker run 运行流程图
一个完整的Docker有以下四部分组成:
- DockerClient客户端
- Docker Daemon守护进程
- Docker Image镜像
- DockerContainer容器
3.Docker小结
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
- image文件生成的容器实例,本身也是一个文件,称为镜像文件;
- 一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器;
- 至于仓库,就是放了一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候从仓库中拉下来就可以了。
4.安装Docker和使用
4.1安装准备
Docker 的安装和使用有一些前提条件,主要体现在体系架构和内核的支持上。对于体系架构,除了 Docker 一开始就支持的 X86-64 ,其他体系架构的支持则一直在不断地完善和推进中。
- Docker 分为 CE 和 EE 两大版本。 CE 即社区版(免费,支持周期 7 个月), EE 即企业版,强调安全,付费使用,支持周期 24 个月。
- 我们在安装前可以参看官方文档获取最新的 Docker 支持情况,官方文档在这里:https://docs.docker.com/install/
- Docker 对于内核支持的功能,即内核的配置选项也有一定的要求(比如必须开启 Cgroup 和 Namespace 相关选项,以及其他的网络和存储驱动等), Docker 源码中提供了一个检测脚本来检测和指导内核的配置,脚本链接在这里:https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh
- 在满足前提条件后,安装就变得非常的简单了。
4.2Docker使用
4.2.1Docker命令图
4.4.2安装与启动Docker
- Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。
- 因此想要安装 docker,只需要运行下面的 yum 命令。
- 在Linux上直接运行:
sudo yum install docker
当然在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装:
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的 Edge 版本安装在系统中。
- 安装完成后,运行下面的命令,验证是否安装成功:
docker version
或docker info
返回docker的版本相关信息,证明 docker 安装成功。 - 启动Docker-CE:
sudo systemctl enable docker(开机启动)
或sudo systemctl start docker
4.2.3Docker常用命令
https://www.runoob.com/docker/docker-command-manual.html
http://www.cnblogs.com/DeepInThought/p/10896790.html
4.2.4Docker容器信息
查看 docker 容器版本:docker version
查看 docker 容器信息:docker info
查看 docker 容器帮助:docker --help
4.2.5镜像操作
镜像查看
提示:对于镜像的操作可使用镜像名、镜像长ID和短ID。
镜像搜索
镜像下载
镜像删除
镜像构造
4.2.6容器操作
提示:对于容器的操作可使用CONTAINER 或 NAMES。
容器启动
容器进程
容器日志
容器的进入与退出
查看容器
容器的停止与删除
生成镜像
容器与主机间的数据拷贝
5.Docker的简单运用——Hello World
查看Docker 版本
启动Docker
将名为 hello-world 的 image 文件从仓库抓取到本地
抓取成功以后,就可以在本机看到这个 image 文件了
运行 hello-world 这个 image 文件