传统企业应用构建

  • 应用被直接部署在操作系统之上,并且操作系统直接安装于硬件之上应用被操作系统绑定
  • 操作系统被硬件绑定
  • 缺点
    • 部署非常慢(启动应用的速度非常慢)
    • 成本非常高(原有服务器的操作系统不支持这个应用,就需要再买一台服务器)
    • 资源浪费
    • 难于迁移和扩展(因为应用只能支持某个操作系统,如CAD不支持mac)
    • 被限定硬件厂商(很多应用只能运行在x86 CPU上)

虚拟化应用部署

既然传统应用构建需要购买服务器。那么,运行虚拟机不就好了?
这个方案有优点也有缺点。

  • 应用被直接部署在操作系统之上,操作系统安装于虚拟硬件之上,虚拟硬件依赖硬件

  • 应用被操作系统绑定

  • 优点

    • 操作系统被封装于文件中,可以在硬件设备之间自由的传播
    • 隔离分区
    • 文件封装
    • 资源池
    • 易扩展(可以随意扩大缩小内存等资源)
    • 易上云
  • 缺点

    • 资源浪费
    • 启动速度慢
    • 迁移过程慢
    • 不能适应SOA架构

容器的由来

  1. 1982年 Unix系统中出现chroot工具,然后后期衍生出LXC一整套工具 2005年 OpenVZ发布
  2. 2013年 dotCloud发起基于Go语言的开源项目Docker
  3. 2014年 Docker镜像下载数达到了一百万次
  4. 2015年 Docker镜像下载数突破十亿次
  5. 2017年 Docker镜像下载数突破百亿次
  6. 2018年 "最受欢迎的云计算开源项目"调查中,Docker仅次于2010年发起的Openstack
  7. 至今,主流的操作系统都已经支持Docker,甚至内置Docker引擎

容器是什么

  • 容器就像是虚拟机,里面一样可以运行应用。
  • 但容器不是虚拟机,他和虚拟机有很大不一样。(重点)

Docker与虚拟机比较:

  • 虚拟化是物理资源层面的隔离
  • 容器是APP层面的隔离

容器和虚拟机的区别(重点)

  • 对于初学者,可以简单的将容器看做为虚拟机。

  • 虚拟机工作在虚拟出来的硬件层之上,而容器工作在Docker引擎上

  • 虚拟机像是一台机器.而Docker是轻量级的,更像是一个应用,而不是物理机.

  • 容器是秒级启动的,占用资源少,虚拟机占用资源多.

  • 容器利用镜像创建,并且是层次关系的,节约资源.虚拟机需要安装操作系统才能使用.

  • 虚拟机里面可以运行docker,但是Docker中不能运行虚拟机。

Docker的安装

# step 1: "安装必要的一些系统工具:"
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: "添加软件源信息:"
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
# Step 3: "更新并安装 Docker-CE:"
sudo yum -y install docker-ce
# Step 4:"开启Docker服务:"
sudo systemctl start docker
sudo systemctl enable docker
# Step 5:"设置Docker镜像源:"
sudo mkdir -p /etc/docker
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://tyavu5lp.mirror.aliyuncs.com"]
}
sudo systemctl daemon-reload #启动docker后台进程
sudo systemctl restart docker #启动Docker Client # 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
# 将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]

15-容器简介与Docker安装的更多相关文章

  1. Windows Server 2019 容器化探索-Docker安装

    Docker on Windows Server 2019 微软自Windows Server 2016开始支持Docker,今天我们将介绍在Windows Server 2019上安装并使用Dock ...

  2. Docker基础:VMware虚拟机Centos7环境下docker安装及使用

    1.docker简介 2.docker安装 3.卸载docker 4.阿里云镜像加速 5.docker的常用命令 5.1 帮助命令 5.2 镜像命令 5.3 容器命令 5.4 后台启动命令 5.5 查 ...

  3. Docker安装部署Rancher

    # 一.Rancher简介 [Rancher](https://www.cnrancher.com/rancher/)是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开 ...

  4. Docker 安装以及运用

    Docker 运行在 CentOS 7 上,要求系统为64位.系统内核版本为 3.10 以上.Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位.系统内核版 ...

  5. CentOS 中利用docker安装MySQL

    1.前提条件 centos7 且内核版本高于3.10, 可通过命令: uname -r 查看内核版本 2.利用yum 安装docker 安装一些必要的系统工具: sudo yum install -y ...

  6. docker安装各类软件

    安装Docker Docker 要求 CentOS 系统的内核版本高于 3.10 , uname -r 命令查看你当前的内核版本 1 安装一些必要的系统工具: sudo yum install -y ...

  7. Docker 容器简介与部署

    关于Docker容器技术 参考文献:<docker 从入门到精通> Docker容器简介 Docker的构想是要实现 "Build,Ship and Run Any App,An ...

  8. Docker 容器中相关软件安装

    Docker 容器中相关软件安装 1.介绍 我们从docker hub下载的centos镜像是只有很少的命令,需要单独安装我们所需的相关软件. 2.安装软件 安装yum-utils软件包 该软件包是辅 ...

  9. docker 安装与常用命令与常用容器(containers)环境

    注意区别 container 与 image 的关系,container 的建立需要 image 的承载,也即 container 依赖 image,停止并删除了 container 并不会删除 im ...

  10. docker(一) -- docker安装、容器加速、下载、备份

    一.docker的 容器是从镜像中创建出来的虚拟实例 容器用来运行实例,是读写层 镜像用来安装程序,是只读层 1. docker的安装和基本操作 安装命令 yum -y update yum inst ...

随机推荐

  1. 修复 Debian 安装 dotnet 失败 depends on ca-certificates

    本文记录我在 Debian 安装 dotnet 失败,报错信息是 packages-microsoft-prod depends on ca-certificates; however: Packag ...

  2. Codeforces Round 940 (Div. 2) and CodeCraft-23 (A-E)

    A. Stickogon 题意:给定 \(n\) 根木棒长度,问最多构成几个多边形. 贪心,四边形不会优于三角形. submission B. A BIT of a Construction 题意:构 ...

  3. Headless BI

    Headless的概念最初的来源与内容管理平台有关,一般是指内容管理平台中的一些应用不提供可视化界面,只是通过API方式把内容以数据的方式给前端.前端根据不同的设备类型,可以再去进行针对性地渲染和展现 ...

  4. 「IT运维迷宫」那些让人头疼的常见问题与破局之道

    在数字化浪潮汹涌的今天,IT运维如同一座错综复杂的迷宫,稍有不慎便可能迷失方向.作为企业运营的幕后英雄,运维团队常常面临着各种突如其来的挑战.本文将带你深入探索IT运维中的那些常见"坑&qu ...

  5. spring-boot集成Quartz-job存储方式一JDBC

    1.项目jar包依赖引入 <dependency> <groupId>org.springframework.boot</groupId> <artifact ...

  6. 使用 Splashtop 启用员工远程访问

    使员工进行远程工作似乎是一项耗时.不安全且昂贵的任务.但是,借助 Splashtop,您可以快速.轻松.安全地使您的员工从任何位置以最高 价值远程访问其工作站. ​ 如何使用 Splashtop 启用 ...

  7. 两个List合并,List集合中的对象根据某个相同的属性,合并另外属性

    简介 (Introduction): 背景 需要对数据进行拼接,拼接的数据是存在两个不同的表中,但是,拼接后要作为一个对象显示,但是,这样的对象又是多个的. 结构图数据库模型 id name 1008 ...

  8. jq 工具及其常用用法

    在处理 JSON 数据时,我们经常需要在命令行中进行过滤.查询和编辑的操作.jq 是一个强大的命令行 JSON 处理工具,它可以让我们轻松地对 JSON 数据进行各种操作.本文将简要介绍 jq 的基本 ...

  9. Django项目windows上开发,虚拟机上调通打包,生产环境解压即用

    linux上部署Django项目 首先创建一个简易的Django项目 使用自动生成的这个数据库 压缩上传 解压运行,不可以 [root@mcw1 /opt/mcwtest]$ ls app01 db. ...

  10. WPF自定义FixedColumnGrid布局控件

    按照上一节所讲,我已经对布局系统又所了解.接下来我就实现一个布局控件FixedColumnGrid. 1.基础版 布局控件机制如下,FixedColumnGrid将子控件按照水平排列,每行满两列后换行 ...