您的位置:首页 > 运维架构 > Docker

Docker概述

2020-02-05 21:34 232 查看

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
  • 点赞
  • 收藏
  • 分享
  • 文章举报
之南之北 发布了9 篇原创文章 · 获赞 0 · 访问量 82 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: