Docker学习 - 1. docker的应用介绍

1. 虚拟化技术

在说 Docker 之前先说一下虚拟化技术, 因为 Docker 的容器化技术是虚拟化的一种体现形式,因此我们要学习容器化技术之前,需要先了解一下什么是虚拟化技术。

所谓的虚拟化其实就是一种资源管理技术,是将计算机的各种实体资源进行虚拟化。

虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等,目的就是:提高我们计算机的使用率。

在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件对资源充分利用。

虚拟化常用架构的有:全虚拟化架构、OS层虚拟化架构、硬件层虚拟化。

2. Docker

Docker是什么

Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

Docker的用途

通过该技术可以快速搭建环境,比如本地测试他人的软件、持续集成的时候提供单元测试和构建的环境,也可以提供弹性的云服务以及组建微服务架构。
举个简单的例子,假设用户试图基于最常见的LAMP(Linux + Apache + MySQL + PHP)组合来运维一个网站。按照传统的做法,首先需要安装Apache,MySQL和PHP以及各自运行依赖的环境,然后可以对他们进行配置(包括创建合适的用户,配置参数等);经过这一系列操作以后,还需要进行功能测试,看一看是否能够正常工作,如果不能正常工作,则意味着更多的时间代价和不可控的风险。更麻烦的是,如果服务器需要进行迁移(比如从AWS迁移到Azure),往往需要重新部署和调试。这些重复性的工作将会降低工作效率。
而Docker提供了一种更加聪明的方式,即通过容器来打包应用,意味着迁移只需要在新的服务器上启动需要的容器就可以了。同时,也能够降低部署的风险。

Docker的优势

在开发和运维的工作中,Docker具有如下优势。

  • 更快的交付和部署。使用Docker,开发人员可以使用镜像来快速构建一套标准的开发环境;开发完成之后,测试和运维人员也可以使用相同的环境了来部署代码。Docker可以快速创建和删除容器,实现快速迭代,大量节约开发、测试和部署的时间。
  • 更加高效的资源利用。Docker容器的运行不需要额外的虚拟化管理程序(Virtual Machine Manager,VMM,以及hypervisor)支持,它是内核级的虚拟化,可以实现更高的性能。
  • 更简单的更新管理。使用Dockerfile,只需要小小的配置修改,就可以替代以往大量的更新工作。并且所有修改都以增量的方式进行分发和更新,从而实现自动化且高效的容器管理。
  • 更轻松的迁移和扩展。Docker容器几乎可以在所有的平台上运行,包括物理机,虚拟机,公有云,私有云,个人电脑,服务器等。
Docker和传统虚拟机的比较

作为一种轻量级的虚拟化方式,Docker在运行应用上和传统的虚拟机方式相比具有显著优势:

  • Docker 容器能够实现秒级的启动和停止,这相比传统的虚拟机要快得多。
  • Docker 容器对系统资源需求量较小,一台主机可以同时运行数千个Docker容器。
  • Docker 通过类似Gitde
Docker的安装

Docker 是一个开源的商业产品,有两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。企业版包含了一些收费服务,个人开发者一般用不到,下面的介绍都针对社区版。
Docker CE 的具体安装请参考官方文档:Docker 官方文档

安装完成后,运行下面的命令,验证是否安装成功

$ docker -v
# 或者
$ docker version
# 或者
$ docker info

如果显示 Docker 的版本,那么即是安装成功了。

dp_user@rqalnx***:/usr/sap/wwpFile> sudo docker -v
Docker version 18.09.4, build c3516c4
image文件

image 文件可以看作是容器的模板,Docker 根据 image 文件生成容器的实例,同一个 image 文件,可以生成多个同时运行的容器实例。
image 是二进制文件,实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成,举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。
image和Docker的区别在于,image从顶层到底层,每一层都是只读层,即这些层不能修改编辑。而Docker的顶层则是可读可写层,即在已有的镜像基础上可以添加新的设置。

Docker的使用

Docker 的使用其实很简单,就是获取镜像(docker pull),通过镜像创建带环境的系统(docker run)。

Docker常用命令:

docker pull 获取镜像(image)
docker images 列出镜像(image)
docker rmi 删除镜像(image)
docker container ls 列出本机正在运行的容器
docker container kill containerID/NAMES 停止运行的容器
docker stop containerID/NAMES 停止运行的容器
docker run 运行container (container在docker中可以理解为装好环境的系统)
--name 自定义容器名称
-d 容器后台运行
-p 当前系统端口:容器端口 端口映射(容器内部端口映射外部)
-v 当前系统目录:容器目录 目录映射
docker ps 列出本机正在运行的容器
开启和容器交互终端(进入容器)

docker exec -i -t 通过docker ps查看的name名 /bin/bash

docker container rm containerID/NAMES 删除容器文件

至此,我们对于docker具有了初步的认识,不过这还远远不够。
在以后的章节里,我们将从镜像、容器、仓库、数据管理、网络配置、Dockerfile以及具体的实战案例进行描述。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容

  • Docker学习总结之Run命令介绍 - vikings`s blog - 博客园http://www.cnblo...
    葡萄喃喃呓语阅读 1,192评论 0 1
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 4,386评论 0 27
  • docker常用命令原理图概览: 按照docker官网上的说法,docker的文件系统分为两层:bootfs和ro...
    燕京博士阅读 2,960评论 2 32
  • 今天写作群里讨论到坚持写作这个事情,以前我也没想到,会这么自觉的坚持这么久,有自己内在想改变的原因,也有外在监督的...
    抱着书的考拉阅读 86评论 0 0
  • 还有多久 他才能牵起她的手 一次的遇见 便成全了两人的望眼 是何种姿态 已然忘却 但两人 都铭记着彼此的双眼 清晰...
    一天m阅读 115评论 0 2