软件下载站,为您提供安全的软件下载!

当前位置:首页 > 电脑专区 > 其他软件 > 编程开发 > Docker for windows

Docker for windows

分享到:
Docker是一款开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可以治的容器中,然后实现应用程序虚拟化,容器采用了沙箱机制,互相之间不会有任何的接口。Docker采用了C/S架构模式,使用远程API来管理和创建Docker容器,软件通过镜像来创建,容器与镜像的关系类似于面向对象中的对象和类。而且采用C/S模式还有一种好处,那就是作为服务端能够轻松接受来自客户的请求,并处理这些请求,客户端和服务端既可以运行在一个机器上,也可通过socket或者restful api来进行通信。
Docker作为一种强大的容易能够为用户提供一个非常好的便利的开发环境,通过软件用户可以虚拟多种运行环境,这样开发的软件就能够经过测试来获取最佳的运行效果,使许多开发人员必备的软件,有需要的用户不要错过哦。

Docker安装说明

需要的条件为: 64bit Windows 10,开启Hyper-V
开启win10的Hyper-V
控制面板 -> 程序 -> 启用或关闭Windows功能 -> 选中Hyper-V

自动重启
3. 安装Docker
用刚才下载的安装包安装,安装完成后,启动Docker
如果没有开启Hyper-V,启动Docker的时候会提示开启Hyper-V

如果启动的时候,提示内存不足,启动失败,可以在设定中调节VM内存大小

查看版本等信息
docker info

docker run hello-world

docker run -it ubuntu bash

docker ps -a

Docker软件特色

由于其基于LXC的轻量级虚拟化的特点,docker相比KVM之类最明显的特点就是启动快,资源占用小。因此对于构建隔离的标准化的运行环境,轻量级的PaaS(如dokku), 构建自动化测试和持续集成环境,以及一切可以横向扩展的应用(尤其是需要快速启停来应对峰谷的web应用)。
1、构建标准化的运行环境,现有的方案大多是在一个baseOS上运行一套puppet/chef,或者一个image文件,其缺点是前者需要base OS许多前提条件,后者几乎不可以修改(因为copy on write 的文件格式在运行时rootfs是read only的)。并且后者文件体积大,环境管理和版本控制本身也是一个问题。
2、PaaS环境是不言而喻的,其设计之初和dotcloud的案例都是将其作为PaaS产品的环境基础
3、因为其标准化构建方法(buildfile)和良好的REST API,自动化测试和持续集成/部署能够很好的集成进来
4、因为LXC轻量级的特点,其启动快,而且docker能够只加载每个container变化的部分,这样资源占用小,能够在单机环境下与KVM之类的虚拟化方案相比能够更加快速和占用更少资源

Docker局限

1、Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用
2、LXC是基于cgroup等linux kernel功能的,因此container的guest系统只能是linux base的
3、隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库
4、网络管理相对简单,主要是基于namespace隔离
5、cgroup的cpu和cpuset提供的cpu功能相比KVM的等虚拟化方案相比难以度量(所以dotcloud主要是按内存收费)
6、docker对disk的管理比较有限
7、container随着用户进程的停止而销毁,container中的log等用户数据不便收集

Docker原理

Docker核心解决的问题是利用LXC来实现类似VM的功能,从而利用更加节省的硬件资源提供给用户更多的计算资源。同VM的方式不同, LXC 其并不是一套硬件虚拟化方法 - 无法归属到全虚拟化、部分虚拟化和半虚拟化中的任意一个,而是一个操作系统级虚拟化方法, 理解起来可能并不像VM那样直观。所以我们从虚拟化到docker要解决的问题出发,看看他是怎么满足用户虚拟化需求的。
用户需要考虑虚拟化方法,尤其是硬件虚拟化方法,需要借助其解决的主要是以下4个问题:
隔离性 - 每个用户实例之间相互隔离, 互不影响。 硬件虚拟化方法给出的方法是VM, LXC给出的方法是container,更细一点是kernel namespace
可配额/可度量 - 每个用户实例可以按需提供其计算资源,所使用的资源可以被计量。硬件虚拟化方法因为虚拟了CPU, memory可以方便实现, LXC则主要是利用cgroups来控制资源
移动性 - 用户的实例可以很方便地复制、移动和重建。硬件虚拟化方法提供snapshot和image来实现,docker(主要)利用AUFS实现
安全性 - 这个话题比较大,这里强调是host主机的角度尽量保护container。硬件虚拟化的方法因为虚拟化的水平比较高,用户进程都是在KVM等虚拟机容器中翻译运行的, 然而对于LXC, 用户的进程是lxc-start进程的子进程, 只是在Kernel的namespace中隔离的, 因此需要一些kernel的patch来保证用户的运行环境不会受到来自host主机的恶意入侵, dotcloud(主要是)利用kernel grsec patch解决的.
展开更多

软件截图

扫描二维码,手机下载APP

软件下载站本地下载

相关文章