01|初识容器:万事开头难
Docker 的诞生
- 深入了解
- 翻译
- 解释
- 总结
Docker:从诞生到基本操作 Docker作为容器技术的先驱,通过本文我们可以了解到Docker的诞生和形态,以及在Linux虚拟机上搭建Docker的过程。文章首先回顾了Docker在PyCon2013上的首次亮相,以及其在云原生领域的重要性。接着介绍了Docker的两种形态:Docker Desktop和Docker Engine,并推荐了使用Docker Engine进行学习。随后详细说明了在Linux虚拟机上安装Docker的步骤,包括安装命令和必要的配置。最后,通过`docker version`和`docker info`命令验证了Docker的安装成功,并展示了相关的系统信息。整体而言,本文以简洁清晰的语言介绍了Docker的基本概念和安装过程,适合初学者快速了解和入门。 在文章中,我们还通过实际操作了解了Docker的基本命令,如`docker ps`、`docker pull`、`docker images`和`docker run`,并展示了它们的使用方法和效果。此外,文章还介绍了Docker Engine的架构,解释了Docker client与Docker daemon以及Registry之间的工作流程,为读者提供了初步的印象和铺垫。最后,通过小结和课下作业,读者被引导思考对容器技术和Docker的认识和感受,以及Docker Engine设计成客户端/服务器架构的好处。 通过本文的总结,读者可以快速了解Docker的诞生背景、基本操作和架构特点,为进一步深入学习和实践打下基础。
《Kubernetes 入门实战课》,新⼈⾸单¥59
全部留言(44)
- 最新
- 精选
- 自由微软曾经以天价收购 Docker,接受微软的天价收购,在大多数人看来都是一个非常明智和实际的选择。可是 Solomon Hykes 却多少带有一些理想主义的影子,不甘于“寄人篱下”,选择带领 Docker 公司对抗整个产业的压力。 思考题1: 容器是一种沙盒技术。那什么是沙盒呢?沙盒就像一个装着小猫的纸箱,把小猫“放”进去的技术。不同的小猫之间,因为有了纸箱的边界,而不至于互相干扰,纸箱 A 中吃饭的小猫并不会打扰到纸箱 B 中睡觉的小猫;而被装进纸箱的小猫,也可以方便地搬来搬去,你不用再去找它躲在哪里了! 思考题2: 上面已经有很多大佬提出了正确答案,目的就是解耦。我也还想多说两句,解耦的思想不仅体现在客户端/服务端,Docker 在服务端也运用的大量的解耦思想,这也是逐步演进的(之前服务端并没有解耦),举一个例子,在旧模型中,所有容器运行时的逻辑都在 daemon 中实现,启动和停止 daemon 会导致宿主机上所有运行中的容器被杀掉。在生产环境就是一个很大的问题,解耦后,这个问题便迎刃而解了 :) 解耦,模块化,让升级、维护都更加稳定,简单。 说的不对的地方,还请大家斧正。谢谢 :)
作者回复: awesome!
2022-07-0145 - 天天有吃的还是使用k8s+docker这种方式吗?最新的k8s不是都不支持docker了?
作者回复: 只是不使用docker shim而已,docker创建的镜像仍然是Kubernetes世界的基础,而且我们的目的是学习,并不需要特别关心这些底层的实现细节。
2022-06-22211 - 星垂平野阔感觉c/s架构分离是方便对docker升级,就如同常规应用一样。 上面有人问了containerd和docker的区别,我也想问这个问题来着。
作者回复: 1.差不多,C/S架构就是功能模块分离,彼此独立,各自发展。 2.docker是一整套产品,containerd只是个容器运行时。
2022-06-2239 - 罗耀龙@坐忘按照教程,成功安装docker.io,试了老师在课文中提到命令 期间我遇到的坑,以及我对应的方法: 1.虽然Linux号称不会“死机”,但拦不住虚拟机要“炸机”。跑在我2009年产的笔记本上的VritualBox就爆了3次。在这,只有耐心,重开,还是重开 2.在安装完docker.io,并自己的用户加入docker组里,跑命令是要加sudo。就像我直接运行docker version,server部分会提示“你权限不足无法查看” 思考题1: 打个比方,现在电脑要运行手机游戏,必须要安装手游模拟器(华为除外)。但如果说能在电脑上运行手机游戏,这应该就是容器技术的效果 思考题2: docker engine设计成客户端 / 服务器(C/S)架构,最直接的好处是,客户端的命令能收集起来统一处理,减少服务器端的没必要的操作,也允许用户在客户端输相同的命令,这样用户的操作更简单点。
作者回复: 加入用户组后需要exit退出,重新登录才能生效。 1.不太准确,这个是模拟器,是硬件虚拟化,和容器还不一样。 2.说的很好。C/S架构更重要的是实现了功能分离,利于分布式应用,不限于单机,比如运行一个docker daemon,然后多个客户端都向这个服务器发命令。
2022-06-2227 - 丁丁之前买个罗老师的http,讲的非常好,看到罗老师又出K8S,于是毫不留情的就入手了
作者回复: great
2022-06-2224 - 新启程1. 从以前对docker的模糊状态,现在有了一个清晰的概念和直观的感受,果真实操才是王道 2. 设置成C/S架构,个人理解是可以让docker server端可以更隔离的运行,使用客户端可以更加安全的操作,更加方便的远程控制和操作。
作者回复: great
2022-10-10归属地:北京2 - lesserror老师,当执行了“service docker start””后,即使Linux重启了,下次docker服务会自动在后台运行吗? 我这里好像只运行了这个命令一次,后面重启后就没管了,后面执行各种docker命令没有任何问题。
作者回复: 是的,这个就是在Linux系统里加上了启动命令,以后就都是自动的。
2022-06-222 - 追风筝的人c/s 分开解耦
作者回复: great
2022-06-222 - Little Bird执行"docker pull xxx" 拉取镜像的时候,如果"net/http: TLS handshake timeout",可以通过更换 docker 镜像源的方式解决此问题. step1: 在文件 "/etc/docker/daemon.json"(该文件不存在手动创建即可) 中输入" { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com", "https://reg-mirror.qiniu.com", "https://registry.docker-cn.com"] }" step2: 重启 docker "systemctl restart docker"
作者回复: great,国内就是折腾。
2022-10-29归属地:上海1 - 温雅小公子今天租了台服务器,把docker安装进去了,这样我就可以直接在自己的机器上操作而不用收到云服务的控制。
作者回复: great!
2022-10-22归属地:上海1