13.1 简介
现代Linux应用可以部署在专门的硬件、容器、虚拟机或是云端。
容器的缺点在于它以来于主机的系统内核。
虚拟机的防在于要占用大量的磁盘空间。
如果你想同时运行多个虚拟机,必须要有足够的内存来支撑各个虚拟机。否则,主机就不得不开始交换页面,影响系统性能。
13.2 使用Linux容器
容器能够有限的访问设备、网络、内存等。在资源上的控制能够避免容器之间的干扰或是对主机系统可能造成的破坏。
在ubuntu中安装lxc支持:
Linux容器分为两类:特权和非特权。特权容器由root创建,其底层系统拥有root权限。非特权容器是由普通用户创建的,只拥有该用户所具有的权限。
选项-n定义了容器名称,选项-t定义了创建容器时使用的模板。
模板类型:
有两种方法可以进入容器:
lxc-attach:可以直接附着到容器中的root用户
lxc-console:打开终端,进入容器中的登录会话
lxc-ls可以列出当前用户可用的容器名称
13.3 使用Docker
Docker使用了相同的Linux底层功能来创建轻量级容器。
Docker容器和lxc容器的主要区别在于前者通常只使用一个进程,而后者使用多个。
service docker start
Docker默认要求以root身份或是使用sudo执行docker命令。
docker serach TERM
命令会返回匹配指定关键字的Docker容器列表
docker pull命令可以从docker registry下载容器。
docker pull path
docker run [options] Container Command
命令支持的选项如下:
-t:分配一个伪终端
i:在处于未附着状态时仍旧打开交互式会话
d:以非附着方式启动容器
--name:为容器实例分配名称
docker ps命令可以列出当前运行的Docker会话,选项-a可以列出系统中所有的docker容器
docker attach命令可以将输出附着在正在运行的容器中的tty会话中。
docker stop命令可以终止正在运行的docker会话
docker rm 容器名或标识符
13.4 在Linux中使用虚拟机
使用VMware或者VirtualBOX。
- 删除docker实例
- 停止docker会话
- 将输出附着在运行的容器上
- 列出dcoker会话
- 启动docker容器
- 下载容器
- 查找容器
- 启动服务器
- 显示容器信息
- 列出所有容器
- 停止容器
- 启动容器
- 创建特权容器
- 云就像是给了你大量可支配的计算机和带宽,最大的优势在于可伸缩性。
- 如果实例需要各不相同的完整运行环境,虚拟机就是最好的方案。
- 如果你想部署单个应用的多个副本,每个副本都需要有自己的私有数据,那么容器就是一种理想的选择。