Docker初步介绍

选中文字可对指定文章内容进行评论啦,→和←可快速切换按钮,绿色背景文字可以点击查看评论额。

什么是docker?

        docker是一个由许多服务组成的程序,它提供了在几乎任何平台上开发,打包,交付,运行应用程序的一致方式。学习docker就是学习这些若干服务的知识,我们后续会详细讨论。

        对于很多开发者而言,尝尝遇到这样一个困惑,这个程序或者代码在小王的本机上运行没有问题,但是在小刘的机器上怎么跑也跑不起来,所以为了在小刘的机器上能够运行,小王挥汗如雨,搞了一下午,发现是运行环境XXX地方配置不一致。这个时候,docker出来了,它大胆的宣布:只要你使用docker,只要你的程序或者代码能够在小王那里运行,那么一定在小刘那里也可以运行。也就是说,docker为我们屏蔽了很多运行环境的细节。

        docker是一个管理你的机器的基础设施的运行平台。Docker提供了一种在DAPT环境中打包,交付,测试和运行应用程序的一致方式。

        怎么理解这句话呢?

        啥是DAPT?(Development, Testing, Acceptance, and Production)

        说人话就是,你将你的应用程序打包成docker的镜像。然后在开发,测试,生产环境中运行相同的镜像。这样做会节省很多在各种环境中配置和安装应用的时间。

docker是怎么诞生的?

       docker的诞生在网络上有很多资源,有兴趣的可以百度或者google搜索了解。在这里笔者只想说一句,从docker的诞生过程,可以证明一句很朴素的格言:创新永远是诞生奇迹的地方,如果你的创新还能给人带来舒适感和幸福感,哈哈,说不定你的这个创新离奇迹不远啦。

为什么docker如此风靡?

        docker如此受欢迎,我思考的关键是:

  •         docker帮我们解决了什么问题?
  •         以前这些问题又是如何解决的?
  •         它们的解决方案存在哪些痛点?

docker帮我们轻松了开发,测试,发布和部署过程,以前这些在虚拟机上弄是一个很痛苦的过程,同时docker也帮我们节省了资源。为了说明这个问题,我用两幅图和一些说明来作比较:

Virtual Machine

  • Hypervisors are used to manage Virtual machines
  • A full copy of Guest OS is installed on top of the Host machine. These Guest os can be of few Gbs, where the hosted app is just of few Mbs.
  • Heavyweight as explained above
  • Difficult to monitor and time taking
Docker

Docker

  • Docker engine takes care of running the image in an isolated runtime, docker container.
  • The application only needs to be packed with its dependencies libraries.
  • Much lightweight than Virtual Machines, and powerful at the same time
  • Easy to manage, spinning up a container is just a matter of few commands and a few seconds.

大伙看到了吧,真的是一图胜千言,不要在意我在这里瞎说,大伙重点是理解这两幅图,并在以后的学习中不断提醒自己,docker的这个命令有没有跟这两幅图关联的部分,如果有的话,它属于哪一部分呢?因为这是对docker的入门理解,所以在这里不详细说明这两幅图,在以后的命令使用中,我们会慢慢理解。

为什么要使用docker?

有效的使用系统资源

        docker容器不需要额外的虚拟化层,却是一个完整的客户操作系统。因此比传统的虚拟化技术能更好的利用资源。

更快的启动时间

        容器化的应用程序只需要几秒钟,甚至几毫秒启动,因为它们直接运行在主机内核上。

一致的操作系统环境

        docker镜像确保除了应用程序之外完整了运行时环境。这使得它可以在任何操作系统上运行。

持续的交付和部署

        DevOps 想要从任何地方配置,Docker 允许您自定义 CI(持续集成)、CD(持续交付)和部署的镜像。

无痛迁移和维护

        Docker 确保一致性,从而使从系统到系统的迁移变得简单。

版权声明:著作权归作者所有。

相关推荐

[译]Java 9:一步步迁移项目到Jigsaw(模块化)

Java 9出来了。 我们来试试一个简单的Spring项目。 为了使练习更具挑战性,我们还要尝试使用新的模块系统。 该项目只是一个使用Spring,JDBC和Shedlock的简单示例。1、阅读所有可用的文档和规格说明。 嗯,听起来很无聊。 跳过第一步。2、下载JDK并尝试运行该项目。 我们很幸运,我们所有的依赖只使用公共Jav

CentOS 7安装Docker环境

在CentOS上有两种方式安装Docke:https://get.docker.com/联网脚本安装使用yum安装联网脚本安装1、更新yum源sudo yum update 2、联网下载脚本安装curl -sSL https://get.docker.com/ | sh 使用yum安装1、更新yum源sudo yum 

初识parcel

webpack是一个很好的web应用打包工具,但是使用webpack需要很多繁琐的配置。parcel则提供了一个零配置的方案,大大简化了使用web应用的工具的难度。Parcel特性Parcel有以下一些特性:1、相比于Webpack, Rollup以及Browserify,Parcel打包时间极快这是Parcel做的一个基准测试,基于一个合理大小的应用,包含1726个模块, 6

Github同步更新fork仓库命令

克隆fork仓库到本地git clone git@github.com:YOUR-USERNAME/YOUR-FORKED-REPO.git添加源仓库的远程主机cd fork-repogit remote add upstream git://github.com/ORIGINAL-DEV-USERNAME/REPO-YOU-FORKED-FROM.gitgit fetch upstream从源仓

Tomcat 8.5新安装环境初步配置优化

下载安装Tomcatwget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gztar zxf apache-tomcat-8.5.37.tar.gz -C /usr/localmv /usr/local/apache-tomcat-8.5.37 /usr/local/t

Centos 7搭建Docker环境

Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。 卸载旧版本旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本: sudo yum remove

单节点ElasticSearch 7 docker-compose.yml

Elasticsearch 7 集群启动在开发环境,往往只需要启动单节点的ElasticSearch进行开发。对于ElasticSearch 6,启动一个单节点集群和多节点集群是相同的。从ElasticSearch 7开始,首次启动集群,需要在集群的主节点中明确定义初始主节点集(即设置参数cluster.initial_master_nodes),集群启动过程中做一个引导启动检查,称为bootst