Docker初学1:初识Docker
前言:本博客内容是对【狂神说Java】中的Docker教程学习过程中的记录与总结
Docker的历史
Docker公司
Docker 公司位于旧金山,由法裔美籍开发者和企业家 Solumon Hykes 创立,其标志如下图所示。
Docker 公司起初是一家名为 dotCloud 的平台即服务(Platform-as-a-Service, PaaS)提供商。
底层技术上,dotCloud 平台利用了 Linux 容器技术。为了方便创建和管理这些容器,dotCloud 开发了一套内部工具,之后被命名为“Docker”。Docker就是这样诞生的!
2013年,dotCloud 的 PaaS 业务并不景气,为了寻求新的突破,将公司重命名为“Docker”,放弃dotCloud PaaS 平台,将Docker代码开源。
Docker一经开源就吸引了一大批人的投资,他们的经济状况转危为安。
Docker的理念
Docker是基于Go语言实现的云开源项目。
Docker的主要目标是“Build,Ship and Run Any App , Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”(怎么感觉这么像Java)。
Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用运行在Docker 容器上面,而 Docker 容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。
Docker为什么这么火?
- 小巧(占用资源少)
在Docker(容器技术)出来之前的使用的都是虚拟机技术,在电脑的原生环境中虚拟一个其他系统。
以下吐槽可以省略…
每当我们想要在Windows底下使用个Linux的环境只能使用VM开一台Linux虚拟机,这个虚拟机包含了Linux系统下的所有东西,而我们只想使用部分功能,这就会出现资源的浪费,使用过VM虚拟机的应该都有同样的感受,明明自己只想要一个Linux的命令行操作一些东西,开了一个虚拟机却占了电脑贼大的内存和磁盘。
而Docker出来之后,我们就只需要几兆或者几十兆就可以虚拟出我们想要的一个环境。 - 启动快
小巧也就意味着启动速度加快,真正的秒级启动,不像虚拟机启动要个一两分钟。
Docker与虚拟机技术的区别
传统虚拟机:
- 虚拟出一套硬件,运行一个完整的操作系统,然后再这个系统上安装、运行软件
容器技术:
- 容器内的应用直接运行在宿主机的内核中,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就比较轻便。
- 每个容器间都是相互隔离的,每个容器内都有一套属于自己的文件系统,容器之间进程不会互相影响,能区分计算资源
开发/运维(DevOps)
- 更快速的应用交付和部署:
传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。 - 更便捷的升级和扩缩容:
随着微服务架构和Docker的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木一样,每个Docker容器将变成一块“积木”,应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩容从原先的天级变成分钟级甚至秒级。 - 更简单的系统运维:
应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。 - 更高效的计算资源利用:
Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor [管理程序] 支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的CPU和内存的利用率。
Docker的学习途径
Docker官网:Docker官网
Docker的官方文档地址:Docker官方文档
Docker Hub,这个类似于github,可以在上面上传或者下载镜像:Docker Hub
相关文章:

Cstring的使用
https://msdn.microsoft.com/zh-cn/aa315043 1、字符串提取函数,CString::Left、CString::Mid 、CString::Right CString::Mid CString Mid( int nFirst ) const; throw( CMemoryException ); CString Mid( int nFirst, int nCount ) const; throw( CMemoryExcepti…

facebook maskrcnn 安装笔记
当前版本的maskrcnn严重依赖pythorch_nightly 1.0.0, 安装过程中一不留神会由于各个包之间不兼容导致no module named maskrcnn_benchmark. 注意以下三点即可: 1. 先安装ipython 2. 再单独安装torchvision。 conda install torchvision 3. 最后本地安装pytorch-…

Python完全学习大师班
面向所有人的Python:基础、中级和高级概念学习制作游戏和实时应用程序 你会学到: 从头开始学习Python 学习中级和高级概念 学习用Python制作实时应用程序 学习用Python制作游戏 要求 不需要编程经验:你将从头开始学习课程中的所有内容 MP4 |视频:h264,1280720 |音…

Docker初学2:Docker的安装
Docker的安装 Docker的架构图 我们先来介绍一下上面这张Docker架构图 镜像(image): Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。 就好似 Java 中的…

[ME]不知道第几次学c语言,仍觉得水深莫测
首先声明这篇东西是个人的碎碎念,没有任何干货。 接下c语言课助教的活儿时还没什么感觉,快要开学了,才感觉到紧张,逼着自己开始看老师发来的课件,说是查错,其实算是自己再好好学一遍,免得到时候…

MYSQL 主从复制 --- binlog
在 Master 端并不 Care 有多少个 Slave 连上了自己,只要有 Slave 的 IO 线程通过了连接认证,向他请求指定位置之后的 Binary Log 信息,他就会按照该 IO 线程的要求,读取自己的 Binary Log 信息,返回给 Slave 的 IO 线程。默认MySQL是未开启该日志的。如果读压力加大,就需要更多的 slave 来解决,但是如果slave的复制全部从 master 复制,势必会加大 master 的复制IO的压力,所以就出现了级联复制,减轻 master 压力。

深入理解Oracle RAC 12c 笔记
深入理解Oracle RAC 12c 跳转至: 导航、 搜索文件夹 1 概述2 集群件管理和故障诊断3 执行实践4 新特性5 存储和ASM6 应用设计上的问题7 管理和调优一个复杂的RAC环境8 备份与恢复9 网络实践10 优化RAC数据库11 锁与死锁12 并行查询13 集群件和数据库升级14 RAC One …

MySQL 中 is null 和 =null 的区别
如果 set ANSI_NULLS为 ON 时,表示SQL语句遵循SQL-92标准;如果 set ANSI_NULLS 为 OFF 时,表示不遵从 SQL-92 标准。但SQL-92 标准要求对null的 = 或不等于 (!= ,) 比较取值都为 false,也就是 =null 或者 null,返回的都是false。null 在MySQL中不代表任何值,通过运算符是得不到任何结果的,因此只能用 is null(默认情况)MySQL 中 null 不代表任务实际的值,类似于一个未知数。

Back Propagation Nerual Networks
1 BP神经网络的优缺点及优化 1.1 BP神经网络的优点 由于预测的随机性和不确定性,传统的回归分析、数理统计等方法往往难以达到理想的预测效果。BP神经网络(Back一Propagation Network,BP)是人工神经网络(Artificial Neural Network,ANN)中应…

OpenCV和Python动手操作计算机视觉学习教程
使用OpenCV和Python进行实际操作 面向初学者的OpenCV Python动手操作计算机视觉 你会学到: NumPy基础知识 基于OpenCV的人脸检测 使用OpenCV在图像和视频上绘制形状 使用OpenCV进行平滑、模糊、阈值和形态学操作 基于OpenCV的目标跟踪 带有OpenCV的直方图 使用OpenCV查找车道线…

Docker初学3:Docker的常用命令
Docker的常用命令 帮助命令 帮助命令可以在我们遇到不懂的命令时帮助我们去了解它们怎么使用。 docker version # 显示 Docker 版本信息。 docker info # 显示 Docker 系统信息,包括镜像和容器数。。 docker --help # 帮助镜像命令 docker images doc…

fastJson的使用
Movie MovieJSON.parseObject(result, Movie.class); Toast.makeText(MainActivity.this, Movie.getDir()Movie.getNm()Movie.getPhotos().size(), 0).show(); 对于jsonArray,也就是先得到具体的某一个jsonarray,然后parseArray. JSONObject object new JSONObject(arg0); …

【C#】ASP.NET网页中添加单点登录功能
背景 首先,要说明的是,原先需求定义的是,同一个账号只能同时有一个人来登录,如果另外一个登录的话,前一个登陆者就自动被踢掉。本来原先要做成存储到服务器的数据库中,但是后来如果是非正常退出的话 下次就…

基于Python和OpenCV的目标跟踪学习教程 Object Tracking using Python and OpenCV
实现12种不同的算法来跟踪视频和网络摄像头中的对象! 你会学到: 使用Python和OpenCV跟踪视频和网络摄像头中的对象 理解跟踪算法的基本直觉 实现12种跟踪算法 了解对象检测和对象跟踪之间的区别 要求 程序设计逻辑 基本Python编程 MP4 |视频:h264,128…

【12】AngularJS 事件
AngularJS 事件 AngularJS 有自己的 HTML 事件指令。 ng-click 指令 ng-click 指令定义了 AngularJS 点击事件。 <div ng-app"" ng-controller"myCtrl"><button ng-click"count count 1">点我!</button><p>…

Docker初学4:下载运行一些必要的镜像
下载运行一些必要的镜像 下载运行nginx # 下载命令 docker pull nginx# 试运行 # -d 后台运行 # --name 设置容器名称 # -p 设置开放的端口号,宿主机端口端口号、容器端口号 [rootiZh40ti53pk77iZ blog]# docker run -d --name nginx01 -p 8083:80 nginx be2700af…

实验1 命令解释程序的编写
实验1 命令解释程序的编写 一、 实验目的 (1)掌握命令解释程序的原理; (2)掌握简单的DOS调用方法; (3)掌握C语言编程初步。 二、 实验内容和要求 1、实验内容:根据教师指…
人工神经网络:感知器
人工神经网络:感知器 1.1 基本概念 1、输入节点:X1{x1,x2,x3,...,xi,...xn},for example,X1[1 2]; 2、输出节点:y{y1,y2},for example,y[0 1]; 3、权值:W{w1,w2,w3,...,wi,...,wn},for example,W[1 1];感知器学习规则…

基于Python的完全监督机器学习教程 Complete Supervised Machine Learning With Python
这门由行业和学术领袖开设的课程是为那些希望在数据科学领域建立有价值的职业生涯的人开设的 你会学到: 监督学习和非监督学习的原理及其区别。 线性和逻辑回归,决策树,回归树,随机森林,判别分析,支持向量机ÿ…

「UI 测试自动化selenium」汇总
《selenium 基础之java实现》 selenium RC 环境配置 菜鸟学自动化测试(一)----selenium IDE 菜鸟学自动化测试(二)----selenium IDE 功能扩展 菜鸟学自动化测试(三)----selenium 命令 菜鸟学自动化测试&…

Docker初学5:下载安装可视化图形工具Portainer
下载安装可视化图形工具Portainer # 搜索Portainer [rootiZh40ti53pk77iZ ~]# docker search portainer NAME DESCRIPTION STARS OFFICIAL AUTOMATED portainer/portainer This Repo is …

dropbear编译安装及服务脚本编写
编译安装下载dropbear、并解压# wget http://matt.ucc.asn.au/dropbear/releases/dropbear-2015.67.tar.bz2 # tar xvf dropbear-2015.67.tar.bz2 # cd dropbear-2015.67 # ./configure --prefix/usr/local/dropbear --sysconfdir/etc/dropbear编译安装dropbear,要…

系统动力学_System Dynamics
1 系统动力学概述 系统动力学的创建标志是Jay.W.Forrester教授的Industrial Dynomics专著于1961年的出版。 1.1 系统动力学的基本概念(Basic Concept of System Dynamics) (1)事件:是指一般在固定的时间或地点上发生…

完整的Python 3和树莓Pi大师课 Complete Python 3 and Raspberry Pi Masterclass
在一门课程中学习Python 3基础、高级Python、科学Python、树莓Pi和硬件项目 你会学到: Python 3基础 Python 3高级概念 树莓皮的设置和使用 科学巨蟒生态系统 NumPy和Matplotlib基础 图像处理 机器学习和数据科学基础 使用MySQL、Excel、明文和CSV Python发行版 树莓皮的硬件及…

JVM学习1:JVM和Java体系结构
JVM和Java体系结构 计算机本身是不识别高级语言的,这个大家应该都知道,我们的Java、C、Python这些代码都要执行下面的一个流程 随着Java7发布以后,Java虚拟机可以根据JSR-292标准实现在Java虚拟机平台上运行非Java的语言编写的程序ÿ…

BitMap 内存使用优化
在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是And…

js中字符串转化为进制以及进制转化
利用javascript进行进制转换的方法 今天在做网站时用到了进制的转换,于是在网上搜索,发现可以直接利用javascript的toString()方法和parseInt()方法进行十进制和其他进制之间的转换,这里对他们的用法进行一下整理。 toString()方法&#x…

QGC地面站参数调节
校准: 1.选择机架:一般用DJI Flame Wheel F450机架,选择之后点击“应用并重启”; 2.传感器校准:无人机会重新连接地面站,依次校准“磁罗盘”、“陀螺仪”,“加速度计”、“地平线”;…

Object类解析
声明:该Java常用类分析基于JDK1.8 Object类 概述 官方介绍: 翻译内容: Object类是类层次结构的根。每个类都有Object作为父类。所有对象,包括数组,都实现这个类的方法。 其中class hierarchy这个词组翻译为类的继承…

用Python构建网页抓取器
借助使用Python构建的尖端网页抓取技术,启动您的大数据项目 Scrape the Planet! Building Web Scrapers with Python 你会学到什么 如何理论化和开发用于数据分析和研究的网页抓取器和蜘蛛 什么是刮刀和蜘蛛? 刮刀和蜘蛛有什么区别? 刮刀和蜘…