Docker运行时和安全沙箱运行时有什么区别?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
相比于原有Docker运行时,安全沙箱提供的一种新的容器运行时选项,可以把应用运行在一个轻量虚拟机沙箱环境中,拥有独立的内核,具备更好的安全隔离能力。安全沙箱特别适合于不可信应用隔离、故障隔离、性能隔离、多用户间负载隔离等场景。在提升安全性的同时,对性能影响非常小,并且具备与Docker容器一样的用户体验,例如日志、监控、弹性等, 但目前安全沙箱仅支持ECS神龙裸金属型号,暂不支持ECS虚拟机型号。
更多关于Docker和沙箱的信息,请参见如何选择Docker运行时、Containerd运行时、或者安全沙箱运行时?。
镜像和容器已然成为应用的打包和交付标准。Kubernetes成为了整个容器云原生应用的标准OS,越来越多的企业和用户选择在ACK中部署自己的应用。容器服务Kubernetes版(ACK)支持Containerd、Docker、安全沙箱三种运行时。本文通过对比三种运行时的实现和使用限制、部署结构,并通过对比Docker和Containerd两种容器引擎常用命令,帮助您根据需求场景选择合适的容器运行时。
特性  | Containerd运行时  | Docker运行时  | 安全沙箱运行时  | 说明  | 
集群类型  | 支持托管版、专有版和边缘托管版  | 支持所有类型  | 支持托管版和专有版  | 无  | 
节点型号  | 支持: 
  | 支持: 
  | 支持: EBM  | 无  | 
节点OS  | 支持: 
  | 支持: 
  | 支持: Alibaba Cloud Linux定制版  | 
  | 
容器引擎  | 支持Containerd  | 支持Docker  | 支持Containerd  | 无  | 
监控  | 支持  | 支持  | 支持  | 无  | 
容器日志文件采集  | 支持  | 支持  | 手动支持(Sidecar)  | 有关Sidecar配置,请参见通过Sidecar-CRD方式采集容器文本日志。  | 
容器标准输出采集  | 支持  | 支持  | 支持  | 无  | 
RuntimeClass  | 不支持  | 不支持  | 支持(runV)  | 无  | 
Pod调度  | 无需配置  | 无需配置  | 配置如下: 
 
  | 无  | 
HostNetwork  | 支持  | 支持  | 不支持  | 无  | 
exec/logs  | 支持  | 支持  | 支持  | 无  | 
节点数据盘  | 可选  | 可选  | 必选(不小于200 GiB)  | 无  | 
网络插件  | 支持: 
  | 支持: 
  | 支持: 
  | 无  | 
kube-proxy代理模式  | 支持: 
  | 支持: 
  | 支持: 
  | 无  | 
存储插件  | 支持CSI Plugin(边缘托管版除外)  | 支持CSI Plugin  | 支持CSI Plugin  | 无  | 
容器RootFS  | 支持OverlayFS  | 支持OverlayFS  | 支持配置磁盘Quota的OverlayFS  | 无  | 
运行时  | 部署结构  | 
Docker  |  | 
Containerd  |  | 
安全沙箱v2  |  | 
Docker运行时和安全沙箱运行时的容器引擎分别是Docker和Containerd。这两种容器引擎都有各自的命令工具来管理镜像和容器。两种容器引擎常用命令对比如下。
命令  | Docker  | Containerd  | |
docker  | crictl(推荐)  | ctr  | |
查看容器列表  | docker ps  | crictl ps  | ctr -n k8s.io c ls  | 
查看容器详情  | docker inspect  | crictl inspect  | ctr -n k8s.io c info  | 
查看容器日志  | docker logs  | crictl logs  | 无  | 
容器内执行命令  | docker exec  | crictl exec  | 无  | 
挂载容器  | docker attach  | crictl attach  | 无  | 
显示容器资源使用情况  | docker stats  | crictl stats  | 无  | 
创建容器  | docker create  | crictl create  | ctr -n k8s.io c create  | 
启动容器  | docker start  | crictl start  | ctr -n k8s.io run  | 
停止容器  | docker stop  | crictl stop  | 无  | 
删除容器  | docker rm  | crictl rm  | ctr -n k8s.io c del  | 
查看镜像列表  | docker images  | crictl images  | ctr -n k8s.io i ls  | 
查看镜像详情  | docker inspect  | crictl inspecti  | 无  | 
拉取镜像  | docker pull  | crictl pull  | ctr -n k8s.io i pull  | 
推送镜像  | docker push  | 无  | ctr -n k8s.io i push  | 
删除镜像  | docker rmi  | crictl rmi  | ctr -n k8s.io i rm  | 
查看Pod列表  | 无  | crictl pods  | 无  | 
查看Pod详情  | 无  | crictl inspectp  | 无  | 
启动Pod  | 无  | crictl runp  | 无  | 
停止Pod  | 无  | crictl stopp  | 无  |