文档章节

Docker系列学习之一——何为Docker?

perofu
 perofu
发布于 2015/06/05 16:49
字数 935
阅读 168
收藏 0

        何为Docker?

 

一、何为Docker

 

         Docker 是一个开源的应用容器(container引擎(轻量级虚拟机),可以轻松的为任何应用创建一个轻量级的、可移植的、可隔离的、自给自足的容器。

 

         超轻量的虚拟机:Docker 几乎就没有什么虚拟化的东西,并且直接复用了 Host 主机的 OS,提供类似虚拟机(KVM)之类的OS

 

         可移植:用户的实例可以很方便地,在Unix上进行复制、移动和重建,docker(主要)利用AUFS实现,别忘了,虚拟机(KVM)是可以迁移的。

 

         可隔离:每个用户实例之间的数据和内存空间相互隔离,以保证一定的安全性。

 

         自给自足的容器:每一个docker实例,包含了所有的环境依赖关系。

 

         一个做好的应用容器,好像一个装好了一组特定应用的虚拟机一样。

 

简单理解:

 

1、应用环境:MySQL

 

2、方案:MySQL的容器(DockerMySQL的虚拟机(KVM)?

 

         ①、MySQL的容器(Docker):

                   有了容器,你就相当于有了一个可以运行起来的虚拟机,只要你能运行容器,MySQL的配置就全省了。而且想迁移到别的机器,直接把这个容器端起来(docker save),再放到另一个机器(docker load)就好了。硬件,操作系统,运行环境什么的都不需要考虑了,除了数据以外

 

 

 

       ②、MySQL的虚拟机(KVM):

                   MySQL的话可能要再装一堆依赖库,根据你的操作系统平台和版本进行设置,有时候还要从源代码编译报出一堆莫名其妙的错误,可不是这么好装。而且万一你机器挂了,所有的东西都要重新来,可能还要把配置在重新弄一遍。

 

3、测试与生产环境:

 

         在公司中的一个很大的用途,就是可以保证线下的开发环境、测试环境和线上的生产环境一致。

 

Baidu 经常碰到这样的事情,开发把东西做好了给测试去测,一般会给一坨代码和一个介绍上线步骤的上线单。结果代码在测试机跑不起来,开发就跑来跑去看问题,一会儿啊这个配置文件忘了提交了,一会儿啊这个上线命令写错了。找到了一个 bug 提上去,开发一看,啊我怎么又忘了把这个命令写在上线单上了。

 

类似的事情在上线的时候还会发生,变成这个软件的版本和我机器上的不一样……在 Amazon 的时候,由于一个开发直接担任上述三个职位,而且有一套自动化部署的机制所以问题会少一点,但是上线的时候大家还是胆战心惊。

 

若利用容器的话,那么开发直接在容器里开发,提测的时候把整个容器给测试,测好了把改动改在容器里再上线就好了。通过容器,整个开发、测试和生产环境可以保持高度的一致。

 

         Google 为全球用户提供互联网服务,需要在分布在全球各地的服务器上部署相关应用程序。

 

传统的部署模式下,Google 工程师需要在每一台服务器上进行相当复杂的操作才能够完成部署。

如果使用 Docker,工程师在全球各地服务器上部署应用的过程将变得非常简单,只需要将应用打包、复制、传送、导入即可完成部署。

 


© 著作权归作者所有

共有 人打赏支持
perofu
粉丝 128
博文 155
码字总数 131715
作品 0
广州
系统管理员
私信 提问
OSChina 技术专题之 Docker 更新版(201412)

Docker 是一个开源的 Linux 应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相...

OSC编辑部
2014/10/13
8.3K
18
【干货整理】Docker,从入门说起……

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不...

慕课网官方_运营中心
2018/07/18
0
0
系列教程丨用 Docker 探索开源软件 —— Elasticsearch(一)

出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一、三、五,与您不见不散! Docker 的一大优点是可以让您快速使用它来试用应用程序,而无需直接在开发人员的计算机上安装它。如果您不想...

docker公司
03/15
0
0
服务自动配置.txt

Docker Docker —— 从入门到实践 Docker中文指南 使用 Docker 搭建 Java Web 运行环境 Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 nginx智能配置 需要对nginx的config完成模版话得功...

如梦技术
2015/05/08
1
0
不容错过 DOCKERCON SF 2019 大会的 5 个理由

出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一、三、五,与您不见不散! 如果您今年只能参加一场大会,那么就来参加 DockerCon SF 2019 大会吧!DockerCon 是从业者、贡献者、维护者...

docker公司
02/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Hibernate SQLite方言

以下代码有参考过github上国外某位大佬的,在发文的最新稳定版Hibernate上是可用的,有时间再仔细分析一下 import org.hibernate.dialect.Dialect;import org.hibernate.dialect.function.S...

CHONGCHEN
今天
3
0
CentOS 7 MariaDB搭建主从服务器

本文编写环境为CentOS7。确保关闭SELinux,关闭防火墙或者防打开指定端口。具体信息如下 #master[root@promote ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [r...

白豆腐徐长卿
今天
10
0
介绍python中运算符优先级

下面这个表给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部...

问题终结者
今天
3
0
Spring Boot 2.x基础教程:快速入门

简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让...

程序猿DD
昨天
10
0
SpringSecurity认证流程源码级详解

SpringSecurity认证流程源码级详解 认证流程说明 认证结果如何在多个请求之间共享 获取认证用户信息

chendom
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部