Docker
2015-05-29 09:46
525 查看
1、之前在逛CSDN时看到过Docker很多次,主要是被它呆萌的logo吸引。
2、今天看到一篇文章讲Docker,讲的很通俗易懂,所以将自己的一点对Docker的认识记录下来;
3、简单的将Docker是一种虚拟化技术,但是它是基于Linux容器技术的,那什么是Linux容器技术呢?
4、参考来源:http://www.cnblogs.com/wang_yb/p/3923040.html
Linux 容器 (LXC - linux container)
LXC 是非常轻量级的, 它将 VM 的进程也伪装成 HOST 的进程. 大致的结构如下
那么, 对于某些系统进程, PID是固定的, 比如 init进程的PID=1, VM中的 init进程的PID是如何处理的呢?
原来, VM的 init进程的PID在 HOST的进程表中会显示成其它PID(>1).
从上面可以看出, LXC这种虚拟化, VM的进程就像HOST的进程一样运行, 管理, 所以创建和销毁都是非常快速的.
容器技术是工作于进程,是内核进行了资源隔离,他的性能接近原生
面向交付:docker基于进程. 他发布出去后用户面对的也是进程入口. 这样的交付方式革命性的变化. 举个例子. 我要安装jira.
传统的方法是安装服务器, 安装tomcat, 下载jira. 配置jira,启动jira. 而在docker中. 所有过程就是一个docker run xxx/jira一行命令即可搞定. 其他软件也是如此. 它是面向交付的.比如复杂的ELK, 也只是几个命令就可以搭建起来. 很多细节都被封装起来了
5、引用一个Docker前辈的经典的话:“Docker 是一个好东西。但对于对运维领域接触较少的人,没用过 docker 是正常的。因为 docker
运行的程序都没有 GUI 界面,而且 docker
只能运行基于 Linux 的程序(感谢思寒补充,docker 也可以运行 .net 程序,详细请看 Running
ASP.NET 5 applications in Linux Containers with Docker)。;在这个操作系统界面还要比颜值的时代,没有图形化界面的虚拟化技术普罗大众怎么会感兴趣呢?”
但是,Docker也试有GUI的,不过颜值高不高,我没有发言权,因为我还没有试过!!!
6、通过比较来了解Docker与其他虚拟化软件的不同:
参考来源:http://testerhome.com/topics/2549?from=groupmessage&isappinstalled=0
下面我们看看在 windows 下用 docker 和用虚拟机搭建一个基于 Ubuntu 的 LAMP 服务器有什么不同:
虚拟机:
安装虚拟机软件,如 Virtualbox
建立一个虚拟机,在里面安装 Ubuntu 系统
安装 apache
安装配置 MySql
安装配置 PHP
Docker:
安装虚拟机软件 boot2docker
安装 docker
使用
使用 Docker ,你节省了:
数百兆甚至 1G 的空间
虚拟机的安装镜像(某些时候获取这些镜像所花的时间很可观)
一个完整的 Ubuntu 系统
所以,docker 相比虚拟机,最大的优势在于快速部署和使用,同时由于 docker 不是完整的虚拟机,它的开启和关闭速度要比虚拟机快的多(一般 10s 内)。
7、Docker如何完成它需要完成的任务?
Docker使用了cgroup和union文件系统
两个词:cgroups和union文件系统。Docker使用cgroup来提供容器隔离,而union文件系统用于保存镜像并使容器变得短暂。
2、今天看到一篇文章讲Docker,讲的很通俗易懂,所以将自己的一点对Docker的认识记录下来;
3、简单的将Docker是一种虚拟化技术,但是它是基于Linux容器技术的,那什么是Linux容器技术呢?
4、参考来源:http://www.cnblogs.com/wang_yb/p/3923040.html
Linux 容器 (LXC - linux container)
LXC 是非常轻量级的, 它将 VM 的进程也伪装成 HOST 的进程. 大致的结构如下
p1(HOST), p2(VM), p3(VM), p4(HOST)...... |
Linux Kernel |
硬件 |
原来, VM的 init进程的PID在 HOST的进程表中会显示成其它PID(>1).
从上面可以看出, LXC这种虚拟化, VM的进程就像HOST的进程一样运行, 管理, 所以创建和销毁都是非常快速的.
容器技术是工作于进程,是内核进行了资源隔离,他的性能接近原生
面向交付:docker基于进程. 他发布出去后用户面对的也是进程入口. 这样的交付方式革命性的变化. 举个例子. 我要安装jira.
传统的方法是安装服务器, 安装tomcat, 下载jira. 配置jira,启动jira. 而在docker中. 所有过程就是一个docker run xxx/jira一行命令即可搞定. 其他软件也是如此. 它是面向交付的.比如复杂的ELK, 也只是几个命令就可以搭建起来. 很多细节都被封装起来了
5、引用一个Docker前辈的经典的话:“Docker 是一个好东西。但对于对运维领域接触较少的人,没用过 docker 是正常的。因为 docker
运行的程序都没有 GUI 界面,而且 docker
只能运行基于 Linux 的程序(感谢思寒补充,docker 也可以运行 .net 程序,详细请看 Running
ASP.NET 5 applications in Linux Containers with Docker)。;在这个操作系统界面还要比颜值的时代,没有图形化界面的虚拟化技术普罗大众怎么会感兴趣呢?”
但是,Docker也试有GUI的,不过颜值高不高,我没有发言权,因为我还没有试过!!!
6、通过比较来了解Docker与其他虚拟化软件的不同:
参考来源:http://testerhome.com/topics/2549?from=groupmessage&isappinstalled=0
下面我们看看在 windows 下用 docker 和用虚拟机搭建一个基于 Ubuntu 的 LAMP 服务器有什么不同:
虚拟机:
安装虚拟机软件,如 Virtualbox
建立一个虚拟机,在里面安装 Ubuntu 系统
安装 apache
安装配置 MySql
安装配置 PHP
Docker:
安装虚拟机软件 boot2docker
安装 docker
使用
docker run -d -p 80:80 -p 3306:3306 tutum/lamp下载并启动 LAMP
使用 Docker ,你节省了:
数百兆甚至 1G 的空间
虚拟机的安装镜像(某些时候获取这些镜像所花的时间很可观)
一个完整的 Ubuntu 系统
所以,docker 相比虚拟机,最大的优势在于快速部署和使用,同时由于 docker 不是完整的虚拟机,它的开启和关闭速度要比虚拟机快的多(一般 10s 内)。
7、Docker如何完成它需要完成的任务?
Docker使用了cgroup和union文件系统
两个词:cgroups和union文件系统。Docker使用cgroup来提供容器隔离,而union文件系统用于保存镜像并使容器变得短暂。
相关文章推荐
- Docker Hub 中超过 30% 的官方镜像包含高危漏洞
- Docker
- 浅谈Docker隔离性和安全性
- CentOS6.5使用 Docker 搭建 Java Web 运行环境
- 基于容器的自动构建——Docker在美团的应用
- Docker网络连接探索
- 在Linux下的Docker中新建容器的方法
- 在Linux服务器上升级Docker的教程
- Docker底层存储结构
- Docker 使用方法总结之:容器的连接
- Docker 使用方法总结之:容器的数据卷操作
- Docker 使用方法总结之:容器的基本操作
- Ubuntu上安装docker指南
- Docker跨主机容器互传数据问题及解决方法
- docker操作运行一步一步来 推荐
- 运行自己的docker registry
- Windows安装Docker Xshell无法连接虚拟机解决方案
- 【举例2】Docker环境部署过程,用ushios/lamp-ubuntu镜像,来创建容器,并安装禅道系统
- Build Your Own PaaS with Docker.pdf
- 利用Docker构建开发环境