1. Docker 的简介概述
1. Docker 的简介概述
@
为什么会有 Docker 出现:
假定你在开发一个项目,你使用的是一台笔记本电脑而且你的开发环境具有特定的配置,其他开发人员身处的配置也各不相同。这个开发的应用依赖于你当前的配置还要依赖于某些配置文件。
我们直到Java程序项目的开发,设计到各种环境 Redis,Java,Spring,MySQL等等配置环境,一旦某个配置的环境稍有一些不一致,可能都会带来一些,错误,导致程序无法运行。当你将这个程序开发完后,交给测试人员去测试的时候,需要让测试人员的环境和你的运行开发的环境一致。如果配置不相同,测试人员那边无法通过运行,而你本机的电脑配置环境可以运行。测试人员就会说你的程序有问题。实际上是你们之间运行环境的不同,导致运行的结果不同。
然后,测试人员将配置和你的开发的配置环境安装配置了一个版本的,程序可以运行了。但是,你这样每个不同的项目,测试人员都要重新安装不同的运行环境,才能运行,我们知道配置环境是一件很麻烦的事情,特别是涉及到分布式微服务就更加复杂了,这样不断的重新安装配置环境,测试人员,的时间都花在了安装运行环境了。
有没有一种方法可以一劳永逸的方式:就是可以将开发人员的配置环境一并(打包)安装过来,这样就可以不用在重新安装配置环境了。有——> Docker容器就可以做到这一点 。
Docker 容器给出的解决方案是:“系统平滑移植,容器虚拟化技术” 。
环境配置,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来,开发人员利用 Docker 可以消除协作编码时,在我的机器上可正常工作的问题 。
之前在服务器配置一个应用的运行环境,要安装各种软件,就拿尚硅谷电商项目的环境来说,Java/RabbitMQ/MySQL/JDBC驱动包等。安装和配置这些东西有多麻烦就不说了,它还不能跨平台。假如我们是在 Windows 上安装的这些环境,到了 Linux 又得重新装。况且就算不跨操作系统,换另一台同样操作系统的服务器,要移植应用也是非常麻烦的。
传统上认为,软件编码开发/测试结束后,所产生出的成果即是程序或是能够编译执行的二进制字节码等(java 为例)。而为了让这些程序可以顺利执行,开发团队也得准备完整的部署文件,让运维团队得以部署应用程序,开发需要清楚的告诉运维部署团队,用的全部部署配置文件+所有软件环境,不过,即便如此,仍然常常发生部署失败的状况 。Docker 的出现使得 Docker 得以打破过去{程序即应用}的观念。通过镜像(images) 将作业系统核心除外,运作应用程序所需要的系统环境,由下而上打包,达到应用程序跨平台间的无缝衔接运行 。
2. Docker 的理念:
Docker 是基于 Go 语言实现的云原生项目:
Dockers 的主要目标是“Builld”,“Ship and Run Any App, AngWhere" ,也就是通过对应用的组件的封装,分发,部署,运行等生命周期的管理,使用户的APP(也可以是一个Web应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。

Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的,将应用打成镜像,通过镜像成为运行在 Docker 容器上面的实例,而 Docker 容器在任何操作系统上都是一致的,这就实现了跨平台,跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。
Docker 是什么:解决了运行环境和配置问题的软件容器 ,方便做持续集成并有助于整体发布的容器虚拟化技术。
3. 容器与虚拟机比较

传统虚拟机:
虚拟机(virtual machine)就是带环境安装的一种解决方案。
它可以在一种操作系统里面运行另一种操作系统,比如在Windows10系统里面运行Linux系统CentOS7。应用程序对此毫无感知,因为虚拟机看上去跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响。这类虚拟机完美的运行了另一套系统,能够使应用程序,操作系统和硬件三者之间的逻辑不变。


容器虚拟化技术: 部署在任何环境中的软件都能始终如一地运行。

容器虚拟化技术 VS 虚拟机:

比较了 Docker 和 传统虚拟化方式的不同之处:
- 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用。
- 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟 。因此容器要比传统虚拟机更为轻便。
- 每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。
4. Docker应用场景

docker官网:http://www.docker.com
Docker Hub官网: https://hub.docker.com/
5. 最后:
“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”
1. Docker 的简介概述的更多相关文章
- Docker 容器简介与部署
关于Docker容器技术 参考文献:<docker 从入门到精通> Docker容器简介 Docker的构想是要实现 "Build,Ship and Run Any App,An ...
- Docker的简介以及Dockerfile编写与使用
Docker的简介 Docker是在容器的基础上,进行了进一步的封装,极大的简化了容器的创建和维护.使得Docker技术比虚拟机技术更为轻便.快捷. 下面是两张对比图. 可以看到传统虚拟机技术是虚拟出 ...
- Phoenix简介概述,Phoenix的Java API 相关操作优秀案例
Phoenix简介概述,Phoenix的Java API 相关操作优秀案例 一.Phoenix概述简介 二.Phoenix实例一:Java API操作 2.1 phoenix.properties 2 ...
- 001.Docker简介概述
一 简介 Docker最初是dotCloud公司的一个内部项目,诞生于 2013 年初,由google公司开源的Go语言开发. Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移 ...
- docker安装及概述
相关快捷键 退出:Ctrl-D or exit detach:Ctrl-P + Ctrl-Q Docker 核心技术 1.Namespace — 实现Container的进程.网络.消息.文件系统和主 ...
- docker (1) ---简介,使用
一.docker简介: 容器( container-based )虚拟化方案,充分利用了操作系统本身已有的机 制和特性,以实现轻量级的虚拟化(每个虚拟机安装的不是完整的虚拟机), 甚至有人把他称为新一 ...
- docker 概念简介、简单入门
1.docker 简介 Docker 是一个开源项目,这个项目旨在通过把应用程序打包为可移植的.自给自足的容器(引用语) DocKer一次构建可放在任何地方就可以运行,不需要进行任何改变DocKer ...
- Docker(一) 简介
简介 Docker是一款针对程序开发人员和系统管理员来开发.部署.运行应用的一款虚拟化平台.Docker 可以让你像使用集装箱一样快速的组合成应用,并且可以像运输标准集装箱一样,尽可能的屏蔽代码层面的 ...
- Docker - Docker 镜像 简介
概述 简单介绍一下 docker 镜像的概念 1. 背景 复习 docker 镜像是 docker 最基础, 最重要的概念之一 所以正式使用之前, 最好有所理解和认识 2. 镜像 概述 简单描述 理解 ...
- Docker入门简介
Docker的概念 什么是Docker? Docker是一个开源平台,包含:容器引擎和Docker Hub注册服务器 Docker容器引擎:可以将开发者打包他们的应用和依赖包到一个可一直的容器中,然后 ...
随机推荐
- 反编译工具之Jadx
jadx 是一款功能强大的反编译工具,使用起来简单方便(拖拽式操作),不光提供了命令行程序,还提供了 GUI 程序.一般情况下,我们直接使用 GUI 程序就可以了. jadx 支持 Windows.L ...
- Golang之工作区workspace
快速开始 创建工作区 写一个最简单的基础项目实际演练一下 Go workspace. 首先,创建 workspace 工作区. $: mkdir workspace $: cd workspace $ ...
- 三菱电梯IC卡系统数据库备份与恢复
查看msde2000的登录方式 sa密码lonele 64位操作系统下 reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsof ...
- vs2017 opencv 编译错误 error C2665: “exp”: 3 个重载中没有一个可以转换所有参数类型
编译错误 - error C2665: "exp": 3 个重载中没有一个可以转换所有参数类型,在GenericPacketMath.h文件, 是因为使用了Eigen3.4库,只要 ...
- Esxi缩小硬盘大小的办法
进虚拟机,把要缩减硬盘的那个系统,磁盘管理,收缩卷收缩了.然后关机. 本例:调整800G到350G. Esxi打开ssh,进去. cd /vmfs/volumes// datastorename,完 ...
- PM-CentOS7也即将停止维护,将来何去何从?
停掉的CentOS包含三个版本,即:CentOS 6(2020年11月30日停止更新).CentOS7(2024年6月30日停止更新).CentOS 8(2021年底停止更新). 在当前处于生命周期中 ...
- k3d 入门:在 Docker 中运行 k3s
k3d 入门:在 Docker 中运行 k3s https://www.xtplayer.cn/k3d/introduction-k3d-run-k3s-docker-src/#The-"S ...
- 【Linux】【虚拟机】 IP地址的动态与静态设置
目录 配置文件的修改 配置文件的修改 vim /etc/sysconfig/network-scripts/ifcfg-ens33 IP配置方式(不指定:none,静态:static,动态:dhcp) ...
- initMySQLPool
package com.be.edge.asset.source; import io.vertx.core.AbstractVerticle; import io.vertx.core.Promis ...
- Qt编写4K/8K大分辨率播放器(8K占用1%CPU)
一.前言 在经过多种内核的洗礼以后,逐渐对不同内核的不同音视频文件和视频流进行大量的对比测试,比如测试对各种格式的支持性,对各种网络流的支持程度,在同一个地址下占用的CPU/GPU资源比对,最终发现播 ...

