docker常用命令
来源:互联网 发布:网络舆情情况汇报 编辑:程序博客网 时间:2024/04/28 19:03
- 容器生命周期管理 —
docker [run|start|stop|restart|kill|rm|pause|unpause]
- 容器操作运维 —
docker [ps|inspect|top|attach|events|logs|wait|export|port]
- 容器rootfs命令 —
docker [commit|cp|diff]
- 镜像仓库 —
docker [login|pull|push|search]
- 本地镜像管理 —
docker [images|rmi|tag|build|history|save|import]
- 其他命令 —
docker [info|version]
各种状态转换:
结合图和命令分类,基本可以把docker的主要功能过一遍了
理解docker的特点首先明确技术要点,Docker技术就是基于容器的虚拟化技术,
相对于其它虚拟化技术,它的特点是:
* 轻量级:单机可以轻松支持上百container,让各种个位数虚拟化的方案相形见绌
* 快速就绪:一秒以内启动,即使是以资源快速就绪著称的青云IAAS也无法相比
* 弱安全:docker能够对多种OS资源进行隔离,但是它本质上依托于内核,因此所有的内核漏洞都是docker的致命伤
* 轻量级:单机可以轻松支持上百container,让各种个位数虚拟化的方案相形见绌
* 快速就绪:一秒以内启动,即使是以资源快速就绪著称的青云IAAS也无法相比
* 弱安全:docker能够对多种OS资源进行隔离,但是它本质上依托于内核,因此所有的内核漏洞都是docker的致命伤
上述三个特点都不是实现上的差异,而是设计方案的先天结果,因此上述结论会在很长一段时间内有效。
理解上述这些特点非常重要。
很多刚接触docker的人会把它和虚拟机做类比,然而这种类比和docker的最佳实践场景有所不同,一个docker容器不像是一台虚拟机,而更像是一个服务单元,如果要类比,反倒更像进程。
当然,docker容器从技术层面上看确实也就是一个进程,然而这不是关键,“轻量级”这个特点带来的其实是服务器软件工作方式的回归。
理解上述这些特点非常重要。
很多刚接触docker的人会把它和虚拟机做类比,然而这种类比和docker的最佳实践场景有所不同,一个docker容器不像是一台虚拟机,而更像是一个服务单元,如果要类比,反倒更像进程。
当然,docker容器从技术层面上看确实也就是一个进程,然而这不是关键,“轻量级”这个特点带来的其实是服务器软件工作方式的回归。
不妨来看看服务器软件的工作单元的抽象工作方式。
服务器软件的抽象模型是有限状态机,不难想到,在这类场景下,服务单元最终要做的,无非就是下面这些事情:
1. 从网络得到请求
2. 结合内部状态进行计算
2.1 访问独有或共享的内存
2.2 访问独有或共享的文件系统
2.3 访问其它服务单元
3. 通过同步或者异步的方式将计算结果由网络反馈出去
服务器软件的抽象模型是有限状态机,不难想到,在这类场景下,服务单元最终要做的,无非就是下面这些事情:
1. 从网络得到请求
2. 结合内部状态进行计算
2.1 访问独有或共享的内存
2.2 访问独有或共享的文件系统
2.3 访问其它服务单元
3. 通过同步或者异步的方式将计算结果由网络反馈出去
最为复杂的部分当属第2步,不过如果考虑到服务器软件需要进行水平扩展,业务也会逐渐分布化,我们会想到一句话,“不要通过共享内存进行通信,而是要通过通信共享内存”,所以,2.1. 可以改为访问独有的内存
实际上,由于有2.3的存在,2.2 也可以简化为访问独有的文件系统,不过文件系统本身的IO性能很差,一旦到了这个层面,往往是分布式和水平扩展的压力不大的场景,所以可以保留。
实际上,由于有2.3的存在,2.2 也可以简化为访问独有的文件系统,不过文件系统本身的IO性能很差,一旦到了这个层面,往往是分布式和水平扩展的压力不大的场景,所以可以保留。
0 0
- Docker常用命令
- Docker常用命令
- docker 常用命令
- Docker 常用命令
- Docker常用命令
- Docker常用命令
- Docker常用命令
- Docker常用命令
- docker常用命令
- docker常用命令
- docker常用命令
- Docker常用命令
- docker 常用命令
- docker常用命令
- docker 常用命令
- docker常用命令
- docker常用命令
- Docker:常用命令
- ubuntu12.0.4共享文件夹总是禁用<Ps:解决方案>
- 最全的Spring面试题和答案
- PHP操作MongoDB技术总结
- MyEclipse下实现git克隆代码到本地
- scala学习之:scala的self Types与依赖注入的代码实战
- docker常用命令
- 选择排序之堆排序(大顶堆)
- 自动提示和手动提示 VS2013与Eclipse中的设置
- Fuse安装和使用
- 2014腾讯、百度、阿里面试经验
- 【LeetCode】之Remove Nth Node From End of List
- Easyui+Spring+Mybatis完整示例(后台)
- 【JavaSE】day05_List集合_List排序_队列和栈
- Word Break && Word Break II