一、Docker是什么?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。容器是完全使用沙箱机制。几乎没有性能开销,最重要的是,他们不依赖于任何语言、框架包括系统。
Docker先后赢得了Google、微软、Amazon、VMware等巨头的青睐,巨头们纷纷示意将保证自己平台与Docker容器技术的兼容性,作为国内最大的云服务商阿里云于2015年正式接口docker支持。
在Docker 1.0正式发布之前,就已经有3家主要银行将其投入到生产应用中,截止目前docker最新版本为:V1.10
二、目前docker主要应用场景
面向开发人员:快速开发、交付应用程序。在容器技术出现之前,公司往往是通过为开发人员提供一台或者多台虚拟机来充当开发测试环境。开发测试环境一般负载较低,大量的系统资源都被浪费在虚拟机本身的进程上了。docker容器几科没有任何CPU和内存上的额外开销,很适合用来提供公司内部的开发测试环境。而且由于docker镜像可以很方便的在公司内部分享,这对开发环境的规范性也有极大的帮助。
面向运维人员:降低运维成本。正如通过虚拟机来整合多个应用,Docker隔离应用的能力使得Docker可以整合多个服务器以降低成本。Docker通过镜像机制,将你的代码和运行环境直接打包成镜像,扔到容器启动即可,可快速部署、扩容。
面向企业:Docker本身就发家于PaaS,在Docker面向企业,是可以提供Paas层的实现;比如,扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
三、Docker相对于 VM 的主要优势
Docker应用容器相对于 VM 有以下几个优点:
- 启动速度快,docker通常在几秒内可以启动,而 VM OS本身启动就要一两分钟。
- 资源利用率高,性能开销小;一台普通8G内存PC 普通应用轻轻松松十几个,容器上运行的程序性能与原生相差无几。而启用十几个VM上基本不可能,VM 通常需要额外的 CPU 和内存来完成 OS 的功能,这一部分占据了额外的大量资源。
四、快速安装
这里以阿里云提供方式安装,系统以ceontos为例。
登录系统后执行
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
稍等片刻即可安装完成(取决于你的网络环境)。
配置Docker加速器
可以使用如下的脚本将mirror的配置添加到docker daemon的启动参数中
# 系统要求 CentOS 7 以上,Docker 1.9 以上。
sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon --registry-mirror=https://8y7pouys.mirror.aliyuncs.com|g" /etc/systemd/system/docker.service sudo systemctl daemon-reload sudo service docker restart
阿里目前提供镜像管理功能,推荐使用之,另外如果你不想使用阿里提供的该功能,当然也可以搭建自己的docker 私有仓库进行管理,这点跟maven管理方式有些类似。
五、应用实例(以搜索、安装、运行tomcat为例)
这里以最常用的tomcat为例,在这儿之前我们的针对不同项目,开发测试环境需要部署不同的tomcat,需要保证相互之间互不影响,通常一个tomcat只发布一个应用,一般如下做法。
- 同一台服务器,部署N个tomcat,每次需要安装不同的目录,不同的服务,改N个不同的端口,很是繁琐。
- 为不同的项目建立不同的VM,不同的项目组独立,这也带来了比较大的资源浪费。
下面我们来看看docker方式:
- 从库里搜索
docker search tomcat
- 进行镜像下载
docker pull tomcat
- 直接运行tomcat
docker run -h "tomcat" -name="tomcat" -p 8888:8080 tomcat:8.0
我们无需关心容器内部端口是否与母机冲突,将内部与母机端口添加一个映射即可,母机端口为:8888 然后打开浏览器,又可以见到那可爱的小猫咪了。
后续对于tomcat的启动、关闭可以直接运行
docker start tomcat
docker stop tomcat
一切又变得很easy了。
六、国内一些提供docker服务的网站
- 灵雀云:http://www.alauda.cn/ 北京凌云雀科技有限公司成立于2014年10月,国内较早基于容器技术、服务于开发者及企业的的云计算平台。
- https://www.daocloud.io, 上海道客网络科技有限公司,2015.1成立,企业级容器云平台和解决方案提供商
参考资料
- Docker:在项目网站上了解 Docker 的更多信息。
- Docker:带给现代开发人员的福利
本文首发于我的个人博客:https://www.jiucool.org/docker-introduction-practice/
相关推荐
开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 Docker通常用于如下场景: web应用的自动化打包和发布; 自动化测试和...
本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现 的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六 章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~...
docker容器,docker从入门到实践,比较基础的教程,适合新手
Docker — 从入门到实践 0.9-rc1(2017-11-29) 修订说明:本书内容将基于 Docker CE v17.x 进行重新修订,计划 2017 年底发布 0.9.0 版本。旧版本(Docker 1.13-)内容,请阅读 docker-legacy 分支的内容。 ...
Docker从入门到实践适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。
Docker 是⼀个开源的应⽤容器引擎,基于 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应⽤以及依赖包到⼀个轻量级、可移植的容器中,然后发布到任何流⾏的 Linux 机器上,也可以实 现虚拟化。 容器是...
"Docker入门与实践”课程讲义及参考 内容包括: Docker基本概念 Docker实现原理 Docker组件介绍 Docker实操环境介绍 什么是Docker容器 深入Docker容器 Docker容器的生命周期管理 认识Docker镜像 手工构建...
docker-从入门到实践,深入浅出,比较好的教程,强烈推荐。
Docker基础概念与架构 Docker安装与配置 Docker镜像管理 Docker容器生命周期管理 Docker网络基础 Docker数据管理与持久化 Dockerfile进阶 Docker服务与健康检查 DockerCompose入门 DockerCompose网络与服务 Docker在...
Docker从入门到实践的电子版文档,入门的基础级别文档。
Docker 入门到实践,docker基础以及但docker核心技术的解读,实践应用
本文档主要介绍Docker的基础知识和应用实战,帮助读者快速上手Docker技术。首先,文章介绍Docker的背景和优势,包括容器技术的优点和应用场景。其次,文章详细介绍Docker的安装和基本使用方法,包括镜像、容器和仓库...
本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时, 书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和 操作;7 ~...
docker超详细基础教程 Docker的介绍 Docker的思想 集装箱 标准化 运输方式 存储方式 API接口 隔离 Docker的组成 镜像 容器 仓库 Docker的运行机制 拉取镜像的执行流程 启动容器的执行流程 Docker...
本课程将你带你一步一步从基础到实践学习Docker,了解什么是Docker,Docker的核心思想、核心组件诸如镜像,仓库,容器等,通过大量的实际操作循序渐进地介绍Docker,带你轻松玩转Docker,Docker技术也是当今IT从业...