`
huangyongxing310
  • 浏览: 490702 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Docker简介

阅读更多
Docker简介


Docker相关述语理解:
1.镜像:就是一个可以运行的程序代码(用相关打包工具打包好后的文件)。如:Ubuntu镜像。当你在Docker上运行这个ubutu镜像时就会运行这个Ubuntu系统。当然你的镜像也可以是基于宿主机的系统调用。
2.容器:就是从镜像里解压出来的,可以运行的一个代码空间(在Docker就是一个文件),说白了就是一个应用程序,运行时就是一个进程。例如我运行一个镜像其实就是在宿主机上创建一个进程并生成一个容器文件(文件名为容器名字)。这个容器(程序)可以在Docker里运行、停止、删除。
3.基础的镜像:就是最基础的镜像文件,你可能在它的基础上进行功能有的扩展(如:Ubuntu镜像,你可以安装更多的应用程序),再制作成一个新的镜像,而这个镜像也可以作为一个基础的镜像。
4.容器也可理解为一个可以运行其它应用的一个系统(如:Ubuntu)或应用程序(如:Tomcat)

与虚拟机的区别:
1.当镜象是一个运行于宿主机系统的镜像时,用Docker容器来运行会比虚拟机的性能好很多。
2.当镜象也是基于一个Ubuntu系统环来运行时,那么与与虚拟机是没有多大区别的,当然性能应该会比虚拟机要好,毕竟是优化过的Ubuntu镜像。
3.Docker是共享内核的(与宿主机),但是镜像中的操作系统是不共享的,就是核的系统调用都是使用宿主机中的系统API,但操作系统是各个容器自身的。
4.内核与操作系统的关系,操作系统是内核的外套,操作系统是在内核基础上增加一些外层应用以方便用户进行开发的库或接口(如shell,软件管理器等),操作系统就是一个方便用户使用计算机和使用内核资源的应用集合的称呼。
5.虚拟机的应用是运行在客机上操作系统的,但这个操作系统是运行在客机上的内核的,内核运行在一个虚拟的硬件上的,虚拟硬件的运行在宿主机的系统上,宿主机的系统运行在宿主的内核中,这样就比docker多了两到三层的软件层,运行速度会慢很多。
6.但虚拟机的运行环境是完全独立的,而docker只是容器独立内核是共享的,会存在资源的共享(不是完全独立的)


好处:
1.存在问题:当你是基于宿主机来进行开发时(测试开发环境),要将应用应用到生产环境时,你就要在生产环境重新搭建一个与开发环境一样的运行环境(安装各种的软件(如:tomcat、JVM、JDK)和环境变量的设置)。
2.解决方法:基于Ubuntu镜像,加入各种功能(安装各种的软件(如:tomcat、JVM、JDK)和环境变量的设置)后生成一个新的镜像,说白了就是在Ubuntu上安装好各种软件之后将Ubuntu系统重新打包成一个新的Ubuntu镜像。
3.新的镜像可以直接在Docker上运行,运行这个镜像后,就可以得到一个什么都装好的环境了,不用你一个个再安装。运用这种方式进行环境搭建和部署服务是非常快的,而且环境也是一样的。


Docker组成:
1.Docker Hub: Docker中心服务,是一个共享的中心处,你注册帐号后出可以将自己做的镜像发送(发布)到这里供别人下载使用。
2.Docker 守护进程:Docker 使用客户端-服务器 (C/S) 架构模式。Docker 守护进程会处理复杂繁重的任务,例如建立、运行、发布你的 Docker 容器。
3.Docker 客户端:Docker 客户端会与 Docker 守护进程进行通信。Docker 客户端和守护进程可以运行在同一个系统上,当然你也可以使用 Docker 客户端去连接一个远程的 Docker 守护进程。Docker 客户端和守护进程之间通过 socket 或者 RESTful API 进行通信。
4.安装Docker就会在本机(宿主机)上安装好Docker 守护进程和Docker 客户端,两者只能按功能分开两部份,方便远程管理Docker 守护进程


Docker Hub
1.Docker Hub是docker的中心仓库。Docker Hub里存储了公共的 Docker 镜像,并且提供服务来帮助你构建和管理你的 Docker 环境。
2.就是一个你注册帐号后,就给你一个仓库空间,你可以将你的Docker 镜像放上去并被别人下载使用。


镜像加载:
1.当你指定一个镜像,docker会查看这个镜像是否有一次加载到你的docker主机上,如果没有发现,docker就会在镜像仓库Docker Hub下载公共镜像。


创建自己的镜像:
1.我们可以从已经创建的容器中更新镜像,并且提交这个镜像。(以Ubuntu镜像为例)
(1)运行这个容器,在容器里面(就是Ubuntu系统)里面增加你要加入的功能(如安装Tomcat)
(2)安装好应用后,退出这个容器
(3)运用Docker生成镜像的命令(docker commit命令)去生成一个新的镜像文件

2.可以使用Dockerfile指令来创建一个镜像。
(1)使用docker commit命令能非常简单的扩展镜像,但是它有点麻烦:在一个团队中不容易共享它的开发过程。(就是看不出你是基于那个镜像开始,在上面加入了什么),Dockerfile指令就是用来解决这个问题的。
(2)方式就是写一个Dockerfile文件,里面写好相关的安装过程命令(有一定的格式),
(3)使用docker build命令和Dockerfile文件生成一个新的镜像。
(4)从新镜像中运行容器(就是加载镜像)时,会按生成镜像的方式输出镜像的生成过程信息,这样你就可以知道这个镜像是如何生成的过程了。
(5)Dockerfile 详细描述了该镜像是如何建立的以及运行时执行的命令。


一个例子说明:
1.你使用Docker,从官方仓库下载一个ubuntu镜像,把它作为最基础的镜像。然后在上面运行一个容器,这个容器里下载Nginx,再以这个容器为基础生成一个新的镜像.
2.以后这个镜像生成的容器就都是ubuntu+nginx为基础。
3.但是你工作环境可能需要你使用Apache来工作,你也想有一个ubuntu+apache为基础的镜像,于是你可以使用最基础的ubuntu镜像运行一个容器,在里面下载安装Apache,然后以这个容器为基础,保存一个ubuntu+apache的镜像,以后在这个镜像基础上运行的所有容器都拥有了一个apache环境。


Docker用途:
1.一致性的微环境.
2.部署快速,运行镜像就可以了。


参考原文(docker简介、应用):http://wiki.jikexueyuan.com/project/docker/userguide/usingdocker.html
参考原文(docker简介):http://www.open-open.com/lib/view/open1423703640748.html
参考原文(最小 Docker 镜像 hello-world 剖析):http://blog.csdn.net/hazir/article/details/45111161
参考原文(Docker与虚拟机性能比较):http://sanwen8.cn/p/182zEbE.html
参考原文(深入分析Docker镜像原理):http://www.csdn.net/article/2015-08-21/2825511
参考原文(Docker 性质及版本选择):http://blog.csdn.net/abcdocker/article/details/53158212
参考原文(Docker 简介):https://opskumu.gitbooks.io/docker/content/chapter5.html
分享到:
评论

相关推荐

    Docker 简介与安装

    Docker 简介与安装 Docker 是一个开源的容器引擎,它有助于更快的交付应用,Docker 可将应用程序和基础环境层隔离,并且能将基础设施当作程序一样管理。使用 Docker,可以更快的打包、测试以及部署应用程序,并可以...

    docker简介及基础教程及特点阐述.rar

    dockerdocker简介及基础教程及特点阐述.rardocker简介及基础教程及特点阐述.rardocker简介及基础教程及特点阐述.rardocker简介及基础教程及特点阐述.rardocker简介及基础教程及特点阐述.rardocker简介及基础教程及...

    docker简介

    docker简介,有助于了解docker技术的相关内容

    Docker简介+使用入门Docker 命令行+定义应用——Dockerfile项目发布——Docker-compose

    Docker简介+使用入门Docker 命令行 定义应用——Dockerfile 项目发布——Docker-compose Docker provides a way to run applications securely isolated in a container, packaged with all its dependencies and ...

    docker简介及相关案例.pdf

    ### Docker简介及相关案例 #### Docker概述 Docker作为一种开源的容器化平台,其核心功能是将应用程序及其所有依赖项打包进一个轻量级、可移植的容器中,从而确保应用程序能够在任何环境中一致地运行。这一特性极...

    docker 简介

    docker简介,一本不错的docker文档。有兴趣的人可以看看

    docker简介,常用命令,和使用说明。

    docker简介,常用命令,和使用说明。

    08_Docker_CentOS7安装Docker简介(补充知识请看34集).avi

    08_Docker_CentOS7安装Docker简介(补充知识请看34集)

    Docker从入门到放弃(1) Docker简介与安装.doc

    Docker从入门到放弃(1) Docker简介与安装.doc

    docker简介及常用命令

    docker

    Docker基础入门到实战视频教程.rar

    02.Docker -Docker 简介 03.Docker -Docker 的基本组成 04.Docker -Docker 容器相关技术简 02.Docker的安装和部署 01.Docker -Docker安装和部署课程简介 02.Ubuntu Docker-在 Ubuntu 中安装 Docker 03.Windows ...

    docker&docker-compose 19.03.14二进制安装

    **Docker简介** Docker是一个开源的应用容器引擎,基于Go语言并遵循Apache2.0协议开源。它可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化...

    docker 入门基础实战完整.pdf

    简介:如何在Linux环境下安装docker 安装环境:Centos 7 安装条件:docker官方要求至少3.8以上,建议3.10以上 Docker 版本: docker EE 企业版本 docker CE 社区版本 关闭防火墙:systemctl stop firewalld.service ...

    docker-tutorial:Docker 简介

    Docker 简介 日期: 2015 年 3 月 24 日,星期二,下午 6:30 地点: MixRadio, Prudential Buildings, 11-19 Wine St., Bristol, BS1 2PH, Bristol, Bristol 聚会: (会场名额有限,如果有人已回复Meetup但...

    Docker与Kubernetes:容器编排与管理.rar

    Docker简介 Docker安装与配置 Docker基本命令 Dockerfile与镜像构建 Docker容器管理 Kubernetes基础 Kubernetes简介 Kubernetes安装与配置 Kubernetes基本概念 Kubernetes基本命令 Docker与Kubernetes结合 容器编排...

    Docker源码分析Docker架构pdf

    1.1 Docker 简介 Docker 是 Docker公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache2.0协议。目前,Docker可以在容器内部快速自动化部署应用,并可以通过内核虚拟化技术...

    kitware-techlunch-docker:面向研究软件工程师的 Docker 简介

    面向研究软件工程师的 Docker 简介Kitware技术午餐日期: 2015-02-10 作者: 马特·麦考密克 < >介绍Docker 是一项席卷软件行业的新技术。 Docker 是一种新型工具,可以轻松构建、发布和运行可重现的二进制应用...

Global site tag (gtag.js) - Google Analytics