行业资讯

帮助中心 >  产品文档 >  云计算 >  Docker 容器和镜像其实很简单

很多朋友都在问,镜像和容器的区别是什么?今天蓝队云就来为大家分享一波我对Docker的理解。


历史前沿

Docker诞生于2013年,由Solomon Hykes和他的团队在公司DotCloud(后来改名为Docker Inc.)创建。Docker的出现是为了简化应用程序的部署和管理,通过引入轻量级、隔离的容器技术,解决了传统软件开发和部署中的多个问题。


采用容器化会带来哪些收益

  • 节省资源

  • 快速启停

  • 一致性和可移植性

  • 持续集成与持续交付

  • 应用隔离

底层原理

namespace和cgroup

Docker的底层依赖于Linux的namespace和cgroup,这两个机制共同为容器提供了隔离性和资源限制。但Windows 的 Docker 底层实现有所不同,不直接使用 Linux 的 namespace 和 cgroup。Windows 版 Docker 实现容器的方式与 Linux 容器类似,但使用的是 Windows 自己的技术,比如 Windows 容器隔离和 Job Objects,以及一套不同的资源控制机制


为什么大家偏爱容器而不是虚拟机?

因为,Docker是更轻量的“操作系统级的虚拟化”,容器和宿主机上的进程都由宿主机操作系统统一管理和调度;而虚拟机是“硬件级虚拟化”,宿主机和虚拟机共用一个Hypervisor。简言之,容器更轻,虚拟机更重。


这就是为什么启动虚拟机的时候,整个电脑要卡顿1-3秒,然后逐步恢复正常。而虚拟机,则基本没有这种糟糕的用户体验。


人类与猎豹赛跑

2014 年的纪录片《60 Minutes》(美国 CBS 电视台)拍摄了一个片子。大意是:展示尤塞恩·博尔特和猎豹的短跑速度差异,推测出博尔特在 100 米比赛中的速度与猎豹短距离冲刺的差距。最后结果显而易见,猎豹以压倒性优势赢得比赛。

通过故事,我想阐明的观点是——虚拟机之于容器技术,就像博尔特之于猎豹(两条腿的怎么干得过四条腿的?要想赢得比赛,拼命已经不够用了,必须改变身体构造)。因为底层原理的原因,docker天然就比虚拟机快一拍。


学习三板斧

  • 安装


# 国外安装
# curl -fsSL https://www.landui.com | sudo sh


  • 配置

装好的docker不能直接用,要稍微改一下配置。下面配置的大意是,限制日志文件大小和数量,设置镜像加速器。

cat <<EOF > /etc/docker/daemon.json
{    
"log-driver":"json-file",    
"log-opts": {"max-size":"128m", "max-file":"3"},
"registry-mirrors": ["https://www.landui.com"]
}
  • 启动

# 启动守护进程
systemctl start docker
# 设置开机自启
systemctl enable docker
# 查看状态
systemctl status docker
随着云计算和微服务架构的普及,Docker无疑成为开发者和运维人员的必备工具。无论是用于提高开发效率,还是优化生产环境的资源利用率,Docker都为现代技术生态提供了强有力的支持。想了解更多Docker基础知识可以前往蓝队云官网,有任何问题也欢迎来官网咨询。



提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: