Docker概述
Docker介绍:
Docker是Docker.inc公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于GO语言开发,并遵从apache2.0协议。通过分层镜像标准化和内核虚拟化技术,Docker使得应用开发者和运维工程师可以以统一的方式跨平台发布应用,并且以几乎没有额外开销的情况下提供资源隔离的应用运行环境。
Docker是一个开源工具,它可以让创建和管理linux容器变得简单。容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或者停止。
Docker帮助系统管理员和程序员在容器开发应用程序,并且可以扩展到成千上万的节点。
Docker跟原有的工具区别:
传统的部署模式是:安装(包管理工具或者源码包编译)->配置->运行;
Docker的部署模式是:复制->运行
容器和VM的主要区别:
容器提供了基于远程的隔离,而虚拟机提供了资源的完全隔离。
虚拟机可能需要一分钟来启动,而容器需要一秒钟或更短。
容器使用宿主操作系统的内核,而虚拟机使用独立的内核。
Docker的局限性之一是,它只能用在64位的操作系统上。
Docker对服务端开发/部署带来的变化:
实现更轻量级的虚拟化,方便快速部署
对于部署来说可以极大减小部署的时间成本和人力成本
Docker支持将应用打包进一个可以移植的容器中,重新定义了应用开发,测试,部署上线的过程,核心理念就是Bulid once,Run anywhere
1)标准化应用发布,docker容器包含了运行环境和可执行程序,可以跨平台和主机使用;
2)节约时间,快速部署和启动,VM启动一般是分钟级,docker容器启动时秒级;
3)方便构建基于SOA架构或微服务架构的系统,通过服务编排,更好的松耦合;
4)节约成本,以前一个虚拟机至少需要几个G的磁盘空间,docker容器可以减少到MB级;
5)方便持续集成,通过与代码进行关联是持续集成非常方便;
6)可以作为集群系统的轻量主机或节点,在laaS平台上,已经出现了CaaS,通过容器替代原来的主机。
Docker优势:
1、交付物标准化
Docker是软件工程领域的“标准化”交付组件,最起到好处的类比是“集装箱”。
集装箱将零散、不易搬运的大量物品封装成一个整体,集装箱更重要的意义在于它提供了一种通用的封装货物的标准。
传统的软件交付物包括:应用程序、依赖软件安装包、配置说明文档、安装文档、上线文档等非标准化组件。
Docker的标准化交付物成为“镜像”,它包含了应用程序及其所依赖的运行环境,大大简化了应用交付的模式。
2、一次构建,多次交付
当涉及到应用程序多副本部署或者应用程序迁移时,更能体现Docker的价值
3、应用隔离
Docker可以隔离不同应用程序之间的相互影响,但是比虚拟机开销更小。
总之,容器技术部署速度快,开发、测试更敏捷;提高系统利用率,降低资源成本。
Docker基本概念:
Docker系统有两个程序:
docker服务端和docker客户端。
docker服务端是一个服务进程,管理者所有的容器。
docker客户端则扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。
大部分情况下,docker服务端和客户端运行在一台机器上。
Docker采用C/S架构开发,整体架构如图所示:
Docker客户端 Docker客户端 Docker客户端 Docker后台 Docker容器 Docker容器 Docker容器
Docker三大核心组件:
Docker镜像 - Docker images
Docker仓库 - Docker registeries
Docker容器 - Docker containers
Docker仓库
仓库(registry) --repository–镜像(按版本区分)
Docker共有仓库
docker.io
]# docker pull daocloud.io/library/nginx:latest #在官方库中下载镜像 ]# docker image list #查看镜像列表
Docker私有仓库
个人或公司部署的非公开库
Docker镜像
名字:
registry/repo:tag
daocloud.io/library/centos:7
镜像ID:
64位的id号
由多层文件系统组成:
最上的文件系统能看见下层文件系统的东西
centoo:7(父镜像)–run容器–安装nginx–打包成镜像(子镜像)–run容器
Docker镜像是Docker容器运行时的只读模板,每一个镜像由一系列的层组成。
Docker使用UnionFS(联合文件系统,将不同的文件系统形成一个单一一致的文件系统)来讲这些层联合到单独的镜像中。
UnionFS允许独立文件系统中的文件和文件夹(称之为分支)被透明覆盖,形成一个单独连贯的文件系统。整因为有了这些层的存在,Docker是如此的轻量。
当你改变了一个Docker镜像,比如升级到某个程序到新的版本,一个新的层会被创建。因此,不用替换整个原先的镜像或者重新建立(在使用虚拟机的时候你可能会这么做),只是一个新的层被添加或升级了。现在你不用重新发布整个镜像,只需要升级,层使得分发Docker镜像变得简单和快速。
Docker安装
CentOS7中Docker的安装:
Docker软件包已经包括在默认的Centos-Extras软件源(联网使用centos7u2自带网络yum源)里。
]# yum install docker
启动Docker服务:
安装完成后,使用下面的命令来启动Docker服务,并将其设置为开机启动:
]# systemctl start docker ]# systemctl enable docker
确定Docker服务在运行:
结果会显示服务端和客户端的版本,如果只显示客户端版本说明服务没有启动
]# docker version
查看Docker基本信息:
]# docker info
用Hello World校验Docker的安装
用Docker运行Hello World镜像,命令如下:
]# docker run hello-world
根据提示执行下面命令:
]# docker run -it ubuntu bash
- 点赞
- 收藏
- 分享
- 文章举报
- Docker的概述-安装-仓库 镜像 容器三者关系(视频)-知识林
- Docker简要概述,四个组件的关系(视频)
- Docker概述
- Docker安全基准:22项新增要点概述
- docker index服务概述
- docker从零开始 存储(一)存储概述
- 二、Docker概述(笔记)
- 05 - Docker Machine 概述
- 跨主机网络概述 - 每天5分钟玩转 Docker 容器技术(48)
- docker index服务概述
- flannel 概述 - 每天5分钟玩转 Docker 容器技术(58)
- 【Docker系列】——(一)Docker概述
- Docker部署 elasticsearch 2.X 简要步骤概述
- 跨主机网络概述 - 每天5分钟玩转 Docker 容器技术(48)
- docker index服务概述
- Docker概述篇
- 跨主机网络概述 - 每天5分钟玩转 Docker 容器技术(48)
- Docker安全基准:22项新增要点概述
- Docker入门与应用实战之Docker概述
- docker概述