Kubernetes 入门实战课
罗剑锋
Kong 高级工程师,Nginx/OpenResty 开源项目贡献者
19527 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
Kubernetes 入门实战课
15
15
1.0x
00:00/00:00
登录|注册

01|初识容器:万事开头难

你好,我是 Chrono。
在课前准备里,我们使用 VirtualBox/VMWare 搭建了 Linux 虚拟机环境,有了这个基础,今天我们就开始正式的学习。
俗话说:“万事开头难”,对于 Kubernetes 这个庞大而陌生的领域来说更是如此,如何迈出学习的第一步非常关键,所以,今天我们先从最简单、最基本的知识入手,聊聊最流行的容器技术 Docker,先搭建实验环境,再动手操作一下,进而破除它的神秘感。

Docker 的诞生

现在我们都已经对 Container、Kubernetes 这些技术名词耳熟能详了,但你知道这一切的开端——Docker,第一次在世界上的亮相是什么样子的吗?
九年前,也就是 2013 年 3 月 15 日,在北美的圣克拉拉市召开了一场 Python 开发者社区的主题会议 PyCon,研究和探讨各种 Python 开发技术和应用,与我们常说的“云”“PaaS”“SaaS”根本毫不相关。
在当天的会议日程快结束时,有一个“闪电演讲”(lighting talk)的小环节。其中有一位开发者,用了 5 分钟的时间,做了题为 “The future of Linux Containers” 的演讲,不过临近末尾因为超时而被主持人赶下了台,场面略显尴尬(你可以在这里回看这段具有历史意义的视频)。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

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-01
    45
  • 天天有吃的
    还是使用k8s+docker这种方式吗?最新的k8s不是都不支持docker了?

    作者回复: 只是不使用docker shim而已,docker创建的镜像仍然是Kubernetes世界的基础,而且我们的目的是学习,并不需要特别关心这些底层的实现细节。

    2022-06-22
    2
    11
  • 星垂平野阔
    感觉c/s架构分离是方便对docker升级,就如同常规应用一样。 上面有人问了containerd和docker的区别,我也想问这个问题来着。

    作者回复: 1.差不多,C/S架构就是功能模块分离,彼此独立,各自发展。 2.docker是一整套产品,containerd只是个容器运行时。

    2022-06-22
    3
    9
  • 罗耀龙@坐忘
    按照教程,成功安装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-22
    2
    7
  • 丁丁
    之前买个罗老师的http,讲的非常好,看到罗老师又出K8S,于是毫不留情的就入手了

    作者回复: great

    2022-06-22
    2
    4
  • 新启程
    1. 从以前对docker的模糊状态,现在有了一个清晰的概念和直观的感受,果真实操才是王道 2. 设置成C/S架构,个人理解是可以让docker server端可以更隔离的运行,使用客户端可以更加安全的操作,更加方便的远程控制和操作。

    作者回复: great

    2022-10-10归属地:北京
    2
  • lesserror
    老师,当执行了“service docker start””后,即使Linux重启了,下次docker服务会自动在后台运行吗? 我这里好像只运行了这个命令一次,后面重启后就没管了,后面执行各种docker命令没有任何问题。

    作者回复: 是的,这个就是在Linux系统里加上了启动命令,以后就都是自动的。

    2022-06-22
    2
  • 追风筝的人
    c/s 分开解耦

    作者回复: great

    2022-06-22
    2
  • 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
收起评论
显示
设置
留言
44
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部