Docker 解决了软件环境部署复杂的问题。

对于一个传统的软件工程,开发人员把写好的代码放到服务器上去运行是一件很头疼的事情,因为常常会出现环境不兼容而导致各种各样的 Bug。

比如说,开发是在 windows 系统下编写的代码,放到 linux 服务器上可能会出问题;开发在本地依赖了一个系统自带的驱动,服务器上却没有这个驱动;开发在本地设置了很多环境变量,服务器上又得重新设置。。。

在软件部署的时候,经常会发生在这台机器上可以跑,但是在另一台机器上却运行失败的情况。运维人员需要不断在开发环境和服务器环境之间调试。

有了 Docker, 只需要简单的几行命令,就可以做到所有的运行环境都一致。

Docker 简化了环境配置流程

Docker 使用的技术几乎没有新技术,大多是对 Linux 已经存在的技术的封装。Docker 中的容器,是使用 Linux 之前的一些技术,把开发需要设置的环境,全部隔离在一起,形成一个集装箱。当有其他的环境需要配置的时候,只需要复制一个集装箱就可以了。

容器可以轻松创建和销毁

在环境配置的时候,还可以使用创建虚拟机的方式来实现环境同步。如果服务器用的是 centos 的系统,可以在开发的时候就用 centos 开发。这确实解决了一些问题,但是还是需要去独立配置每一台机器。而且,虚拟机本身对多个程序之间的环境不兼容的时候无能为力,可能需要借助第三方的一些管理工具,而 Docker 却可以轻松在一台机器上运行多个容器。

Docker 容器和虚拟机

容器不是一台机器。Docker 利用的是 Linux 的资源分离机制,例如 cgroups,以及 Linux 核心命名空间(namespaces),来建立独立的容器(containers)。容器看上去是一台机器,实际上是一个进程。

相比于虚拟机,容器的优势主要有:

  • 资源占用少
  • 启动速度快
  • 本身体积小

Docker 给软件开发领域带来的不仅仅是提供环境,可以说它直接带火了 Golang。因为 Docker 容器创建和销毁非常方便,很适合用来动态扩容和缩容,可以直接用在云计算当中的弹性服务当中。另外,基于 Docker 容器的隔离特性,一台服务器上可以同时跑很多个程序而做到管理方便,很符合微服务架构的需要。

Docker 入门:什么是 Docker ?的更多相关文章

  1. SpringBoot Docker入门,SpringBoot Docker安装

    SpringBoot Docker入门,SpringBoot Docker安装 ================================ ©Copyright 蕃薯耀 2018年4月8日 ht ...

  2. docker入门 基础命令 docker安装

    docker入门   在学一门新知识的时候,超哥喜欢提问,why?what?how? wiki资料 什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes ...

  3. 【docker 入门 - 01】- Docker 在 Centos7 上安装与测试

    一.学习文档 官网网站: https://www.docker.com 中文网站:http://www.docker-cn.com 官方安装文档:https://docs.docker.com/ins ...

  4. Docker入门 - 001 CentOS Docker 安装

    Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS 仅发行版本中的内核支持 Docker. ...

  5. docker入门 什么是docker? 为什么使用docker?

    1.什么是docker? 轻量级操作系统虚拟化解决方案 2.为什么使用docker? 1.docker的启动是秒级的,比传统虚拟机快很多 2.资源利用率高,一台主机上可同时运行数千个docker容器 ...

  6. Docker 入门及安装[Docker 系列-1]

    docker 如日中天,这不是单纯的炒概念,docker 确确实实解决了开发与运维的痛点,因此在企业开发中得到了非常广泛的使用,本文对于 docker 的这些基本知识点再做一些简单回顾. 什么是 do ...

  7. Docker入门之安装Docker

    目录 目录 1 1. 前言 1 2. 创建网桥 2 3. 安装Docker 2 3.1. 二进制安装 3 3.1.1. 下载安装 3 3.1.2. 配置服务 3 3.1.3. 启动服务 4 3.2. ...

  8. docker入门一:docker安装(在线跟离线)

    一.在线安装 1.安装依赖 yum install -y yum-utils device-mapper-persistent-data lvm2 2.添加软件源 yum-config-manager ...

  9. Docker(三):Docker入门教程-CentOS Docker 安装

    CentOS Docker 安装 Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS 仅发 ...

  10. 超实用的Docker入门教程|Docker vs VM

    概述 如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发 ...

随机推荐

  1. 全网最清晰的ConstraintLayout教程

    ConstraintLayout是AndroidStudio2.2新增的一个功能,那么这个到底是什么呢?首先第一点我们知道传统的安卓开发,页面基本都是XML编写实现,特别在一些复杂的页面上需要嵌套多层 ...

  2. 前端存储 (5) - service worker 离线存储

    service worker 离线存储 简介: 一般的网站 在我们无法访问的 时候 一般 回出现 如下 该网页无法访问 service worker 构建的网站不会出现这个错误,因为所有的 请求都是先 ...

  3. 强行重装IE6

    一句指令解决了郁闷一天的问题: 今天碰到问题如下: 在不知是不是人品问题的情况下(其实基本是优化大师嫌疑最大)发现在第三方引用的软件中不能打开IE了: 具体症状: 在QQ中点击别人的链接,没反应: 在 ...

  4. 数学--数论--HDU1222 狼和兔子(最大公约数)

    问题描述 有一座周围有n个洞的小山.孔从0到n-1有符号. 兔子必须藏在其中一个洞中.狼以逆时针方向搜索兔子.他第一个进入的洞是一个用0签名的洞.然后,他将每m个洞进入一个洞.例如,m = 2和n = ...

  5. NetCore项目实战篇04---集成IdentityService4

    大家都知道我们的项目中已有web api,现在可以正式访问,不论任何人只要通过输入对应的api网址就可以访问到我们的api 资源,这样是很不安全的,我们需求对当前用户进行身份验证,因此我们在项目中使用 ...

  6. Qt编程基础入门之二

    QMainWindow 菜单栏 菜单栏 最多有一个 //菜单栏创建,一个 QMenuBar *menu = new QMenuBar(this); // this->setMenuBar(men ...

  7. 1、Hbase原理分析

    一.Hbase介绍 1.1.对Hbase的认识 HBase作为面向列的数据库运行在HDFS之上,HDFS缺乏随机读写操作,HBase正是为此而出现. HBase参考 Google 的 Bigtable ...

  8. 【Kafka】Consumer API

    Consumer API Kafka官网文档给了基本格式 http://kafka.apachecn.org/10/javadoc/index.html?org/apache/kafka/client ...

  9. 把99%的程序员烤得外焦里嫩的JavaScript面试题

    最近有学员给出一段令人匪夷所思的JavaScript代码(据说是某某大厂面试题),废话少说,上代码:   var a = 10; { a = 99; function a() { } a = 30; ...

  10. Jekyll 解决Jekyll server本地预览文章not found的问题

    layout: post tags: [Jekyll] comments: true 执行Jekyll本地浏览器预览指令 bundle exec jekyll serve 进入浏览器输入127.0.0 ...