打算在学校开课讲 Docker,大家有啥建议没有? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xiqingongzi
0D
V2EX    程序员

打算在学校开课讲 Docker,大家有啥建议没有?

  •  1
     
  •   xiqingongzi
    bestony 2016-04-29 15:07:56 +08:00 7441 次点击
    这是一个创建于 3541 天前的主题,其中的信息可能已经有所发展或是发生改变。

    打算在校内开展 Docker 课程

    我个人是打算讲些 Docker 的优势,然后就是 Docker 容器的基础应用。

    我觉得我主要是引起兴趣,更多还是同学们能够有兴趣自己去研究

    62 条回复    2016-05-12 08:59:56 +08:00
    eoo
        1
    eoo  
       2016-04-29 15:11:48 +08:00 via Android
    支持
    fuhanfeng
        2
    fuhanfeng  
       2016-04-29 15:14:29 +08:00   1
    你说滋不滋次,我当然是滋次的。

    学校很需要一些比较新的技术,因为老师教的东西实在太老了,学生也会容易没有兴趣。
    Shura
        3
    Shura  
       2016-04-29 15:22:18 +08:00 via Android
    然而最多只能是选修课
    xiqingongzi
        4
    xiqingongzi  
    OP
       2016-04-29 15:27:07 +08:00
    @Shura 哈,连选修都算不上,只能算社团的技术分享
    xiqingongzi
        5
    xiqingongzi  
    OP
       2016-04-29 15:27:41 +08:00
    @fu82581983 其实学校的老师都知道,只是不教。坑死。老师们做项目也是 BootStrap 各种用,但是给学生讲的却很少
    fulvaz
        6
    fulvaz  
       2016-04-29 15:30:09 +08:00
    然而我觉得本科能把基础讲明白就已经很了不起了
    xiqingongzi
        7
    xiqingongzi  
    OP
       2016-04-29 15:32:43 +08:00
    @fulvaz 作为社团只讲应用,不讲基础,基础更喜欢同学们自己去深挖。
    cxbig
        8
    cxbig  
       2016-04-29 15:33:34 +08:00
    想法很好,最好能结合实践。
    10 年前就是吃了这个亏,教材陈旧缺乏实践,出来发现很多知识和社会是脱节的。
    xiqingongzi
        9
    xiqingongzi  
    OP
       2016-04-29 15:35:17 +08:00
    @cxbig 实践的话,会考虑介绍灵雀云之类的业务给他们,让他们尝试自己去操作、部署程序
    cxbig
        10
    cxbig  
       2016-04-29 15:41:51 +08:00
    @xiqingongzi 大部分实践其实本地 vm 就能做了
    dangyuluo
        11
    dangyuluo  
       2016-04-29 15:58:04 +08:00
    你是讲师还是学生
    9hills
        12
    9hills  
       2016-04-29 16:01:45 +08:00 via Android   1
    你说好不好,那当然是吼啊,但是希望能多讲基础

    Cgroups. Namespace aufs 等等,而不是只教怎么用
    froma2z
        13
    froma2z  
       2016-04-29 16:04:55 +08:00
    没什么坏处,也没什么卵用
    SourceMan
        14
    SourceMan  
       2016-04-29 16:05:45 +08:00   1
    《 LOL 首杀的技巧与实践》
    yuedingwangji
        15
    yuedingwangji  
       2016-04-29 16:33:37 +08:00
    good
    qfdk
        16
    qfdk  
    PRO
       2016-04-29 16:45:56 +08:00   6
    来来给 lz 点儿建议,刚做了关于 docker 的东西 :) 顺便把我们的教学教材给你们
    重点不是你来灌输思想而是让他们知道为什么要用 Docker ,自己学来的更有意思并加上自己的实践,你就是当一个学生的角色,这样才能调动积极性,你可以在他们的演讲上提一下问题,看看他们有没有好好的下功夫。如果有条件开一个云平台的话大家可以共享一个文件夹,让学生把做的 ppt 都放上去分享给别的同学,来个 http://tinyurl.com/hzsr2bm

    1. 首先要让学生知道 Docker 是干啥么的,这个不用你来讲,让他们自己学习。

    2. 让他们把学习成果给你们以 ppt+demo 的形式来展示一下,不特别复杂,让他们用 tomcat 跑一个项目,或者 nginx 跑一个自己的项目就好,或者 WordPress 之类的。

    3. 分成 2 人的小组来做一个 微型架构(都在 Docker中) 加上物理机的 nginx 来复杂均衡+monkey 测试。
    我把我们写的教程可以发一下
    http://tinyurl.com/jllhezf (需要翻墙)
    就是做成一个这样的项目 英文资料 http://techblog.netflix.com/2013/03/introducing-first-netflixoss-recipe-rss.html
    这些都要做在 docker 里面
    最后写一个自动化脚本自动部署这些东西

    具体可以参考我写的 https://github.com/qfdk/docker-rss
    喜欢的可以去 https://hub.docker.com/r/qfdk/docker-rss/ 给我打个星 :)
    时间长的话 大概 7 节课,短的话大概 2 节课,看学生水平而定(如果连 git 都不会玩儿的孩子。。)

    最后祝好运
    chinajik
        17
    chinajik  
       2016-04-29 16:52:12 +08:00   1
    推荐 https://www.daocloud.io/
    跟着这个工具走,基本上都能教得好
    Tea.fm 里面有一期节目是马道长的采访,对 docker 的解释我觉得蛮中肯的
    xiqingongzi
        18
    xiqingongzi  
    OP
       2016-04-29 17:07:52 +08:00
    @qfdk 感谢!
    @chinajik 晚上看看
    @dangyuluo 助教
    @9hills 讲基础怕学生没兴趣,我是喜欢讲应用,让他们自发去研究基础
    iburu
        19
    iburu  
       2016-04-29 17:11:12 +08:00
    学生的福气
    garipan
        20
    garipan  
       2016-04-29 17:17:27 +08:00
    @qfdk 好 铜币已送
    Rorysky
        21
    Rorysky  
       2016-04-29 17:28:51 +08:00
    Docker 和 Vagrant 有何异同?
    ayaseangle
        22
    ayaseangle  
       2016-04-29 17:31:27 +08:00 via Android
    只能是选秀或者课外活动。。。本科还是以基础科学为主。
    elya
        23
    elya  
       2016-04-29 18:17:13 +08:00 via iPhone
    你安装一次 Discourse ,啥都体验了
    xiqingongzi
        24
    xiqingongzi  
    OP
       2016-04-29 18:49:49 +08:00
    @ayaseangle 是啊
    @Rorysky Vagrant 如果我没记错是基于 Vbox 的。 Vbox 是系统虚拟化。 Docker 更多是进程虚拟化
    @elya 学生们并不知道 Discourse
    popu111
        25
    popu111  
       2016-04-29 19:12:59 +08:00 via Android
    个人感觉这种东西没啥好讲的,还是实♂干的好
    yangxin0
        26
    yangxin0  
       2016-04-29 19:17:15 +08:00 via iPhone   1
    还不如多开一门数学课,统计、概率论、数论, docker 这些都是纸老虎如果真要用花一两小时看看文档就可以了。
    wph95
        27
    wph95  
       2016-04-29 19:20:12 +08:00
    楼上那位讲的是不错,不过那内容你确定是给普遍的大学学生讲的?
    你跟同学讲微服务架构?
    ---
    作为一个大二狗,我认为应该这样。
    首先表演了快速部署一个博客。 docker pull ghost & docker run ...
    给大家树立 docker 的初印象,快,方便。
    然后引导大家将自己的小项目 docker 化。足够给学生们种下种子了。

    讲 Aufs Cgroups. Namespace ? 那就不是通过上课来教的了 && Aufs 已经属于淘汰边缘
    xcodebuild
        28
    xcodebuild  
       2016-04-29 19:21:44 +08:00
    支持,对有用的人会很有用的,我一直很感谢大一的时候学长给我们介绍 Github 。

    (当然对没用的人来说仍然没什么用、、、
    xiqingongzi
        29
    xiqingongzi  
    OP
       2016-04-29 19:25:26 +08:00
    @codefalling 一直觉得版本控制是大学必学的课程。特别是这些开源社区,非常重要。
    @yangxin0 哈,基础的是不少了。虽然是纸老虎,但是我接触到太多的学生甚至不知道这个老虎。
    @wph95 这个是打算做。不过可能会参考 @qfdk 的路线,基础的 Docker 基础让学生自己去查,我在课程上进行简单的说明。然后就是先做实例吸引他们上兴趣。然后就是带他们做小的项目的 Docker 化,逐步引导。我更喜欢让他们自己研究。
    @popu111 实干的前提是让他们知道这东西。三线城市的小学校,关注不到
    qfdk
        30
    qfdk  
    PRO
       2016-04-29 19:34:02 +08:00 via iPhone
    @xiqingongzi 不是那个意思 1 2 3 都是给学生做的 你的任务只是在他们碰壁的时候去伸出援手 让同学自己讲课. 我们现在的策略一直这样 学生上台讲课 老师挺轻松 老师就是帮助梳理一下 项目中可能遇到的问题
    @wph95 看第二点 wp 是让同学自己动手演示 老师只是指导
    qfdk
        31
    qfdk  
    PRO
       2016-04-29 19:35:56 +08:00 via iPhone
    @xiqingongzi 车上颠簸没看仔细 不好意思哈 误解了
    wph95
        32
    wph95  
       2016-04-29 19:37:24 +08:00
    @xiqingongzi 我还是建议 “项目驱动开发”
    到业务复杂到一定程度,他就自然去研究微服务化了。
    docker 的坑在 网络 存储 和 调度。
    反正都碰不到。
    xiqingongzi
        33
    xiqingongzi  
    OP
       2016-04-29 19:37:30 +08:00
    @qfdk 嗯,不过我这边的学生水平一般,前期我还是要多引导。
    xiqingongzi
        34
    xiqingongzi  
    OP
       2016-04-29 19:38:46 +08:00
    @wph95 项目驱动研发是正常的。但是目前来说,不指望他们能直接上手开发,他们目前很多人对开发都是初步开始接触。他们目前很多地方还是不清楚。甚至我们觉得普通的 Linux ,他们目前基础都很差。
    qfdk
        35
    qfdk  
    PRO
       2016-04-29 19:45:14 +08:00 via iPhone
    @xiqingongzi 其实最有趣的还是第三点 , 用docker 模拟出来负载均衡的环境, 再写一个 shell 脚本模拟不同的服务器宕机 重启. 这样即学习了主流架构又可以模拟出生产的状况 linux 下的服务器运维 以及对英文的阅读能力 . 搞计算机的这些不会 不大靠谱了. 学生自己讲课还能锻炼语言表达能力 以后跟客户沟通之类的. 我们这边三个任务做完一共 4 节课.
    xiqingongzi
        36
    xiqingongzi  
    OP
       2016-04-29 20:05:46 +08:00
    @qfdk 他们是网络工程专业的。为啥不会我也不明白,毕竟我不是课程设计老师。这些能力确实需要培养
    ryd994
        37
    ryd994  
       2016-04-29 20:38:29 +08:00
    其实我觉得没有实际经验很难觉出 docker 的好,只会觉得多了好多步骤麻烦。
    只有当测试环境跑的好好的代码部署之后跑不起来的时候,当要迁移服务器,发现要一条条到旧服务器上爬配置的时候, docker 的优势才能体现出来。
    另外,建议不要单讲 docker 本身。学习 compose 能更加强化“ docker 的正确用法”的概念。
    Orzzzz
        38
    Orzzzz  
       2016-04-29 20:54:48 +08:00
    用 Daocloud 啊,最 docker 的一家了~

    可以搞一个比赛什么的,用 docker 发布应用,然后分享一下每个人的 dockerfile ,分享一些奇淫技巧什么的。
    最近在研究微容器,一个系统能做到 4.9M ,一个 nginx 服务器只有不到 7M , nginx+php 也才 24M ,简直太赞了,可以给同学们讲讲,肯定都会惊讶的。
    还有可以用 docker 替代虚拟机,或者将虚拟机里的应用迁移到 docker 上,都很有挑战性。
    至于原理的话,亮哥有本《 Docker 源码分析》,可以给同学们推荐一下。

    支持老师~


    @yangxin0 你还记得你学过的数论概率论图论吗?不赞成你说的花一两个小时看文档就可以搞定.
    ryd994
        39
    ryd994  
       2016-04-29 22:34:14 +08:00
    @Orzzzz 关于 alpine 还有微容器,感觉其实镜像大小没有那么重要,如果是以常用的 linux 发行版为基础,增量部分是差不多的。
    用 docker history 查看 nginx 和 nginx:alpine 除了基础 OS ,增加的大小,一个是 57.63MB 一个是 56.46MB ,可见几乎没有差别。
    更何况,实际上,以大家的服务器的带宽, 5M 和 50M 和 500M 。下载时间多几秒,并不是大问题。
    而经典发行版的社区支持,是 alpine 等不能比的
    参见 ycombinator 的讨论: https://news.ycombinator.com/item?id=11018102
    7harryprince
        40
    7harryprince  
       2016-04-29 22:54:26 +08:00
    先用 docker 撸一个 wordpress 电子商务网站。
    litpen
        41
    litpen  
       2016-04-29 23:09:44 +08:00 via Android
    听说我们学校去年有个学长毕业论文讲 docker ,结果老师都蒙了,不知道怎么问他答辩了
    Reficul
        42
    Reficul  
       2016-04-29 23:17:35 +08:00 via Android
    @litpen
    研究生还是本科生,咩学校呀?我也准备明年开题上这个方向。
    yangxin0
        43
    yangxin0  
       2016-04-29 23:21:07 +08:00 via iPhone
    @Orzzzz 我以前研究过 cgroup 所以看操作很快的。最近工作接触深度学习、人脸识别所以感觉数学跟不上了。编程这种其实很简单的,有经验的话这个很快,数学以及一些基础课工作了补起太累了。
    litpen
        44
    litpen  
       2016-04-29 23:28:36 +08:00   1
    @Reficul 其实应该是因为去年那个时候 Docker 还太新,明年应该比较多人有了解了
    Orzzzz
        45
    Orzzzz  
       2016-04-29 23:44:12 +08:00
    @yangxin0 膜拜 Orz... 这些东西都好高端,可能是因为我对现在学的数学不感冒吧,还特别容易忘。。
    @
    ryd994 我是在本地测试用的,所以感觉差别很大,为此还在本机搭了缓存服务器。。。不过我觉得这东西真的很有趣。 另外,谢谢你的链接~
    frozenshadow
        46
    frozenshadow  
       2016-04-29 23:48:24 +08:00
    @wph95 卧槽,小哥,你才大二???
    starcraft
        47
    starcraft  
       2016-04-30 00:40:56 +08:00 via iPhone
    并没必要 就像不少学校已经不拿 java 做参与教学一样。教学基础和实际工作还是不一样的。
    xiqingongzi
        48
    xiqingongzi  
    OP
       2016-04-30 08:16:26 +08:00
    @starcraft 我希望能够带他们入门,让他们知道什么是最新的。他们天天打英雄联盟,什么都不知道。比较着急
    @litpen 可能是老师比较忙,没关注这个。
    @7harryprince 打算撸 WordPress ,电子商务的话,他们目前应该没这个需求。
    @ryd994 这个确实。 Docker 本身也是解决现实环境问题出来的。
    @Orzzzz DaoCloud 的 Dao 工具必讲!
    WildCat
        49
    WildCat  
       2016-04-30 08:37:12 +08:00 via iPhone
    @xiqingongzi 不要试图劝整天打 LOL 的少年,否则你会失望的。

    另外最好能申请到 docker(for Mac/Windows)的内测,体验不错。


    @wph95 我觉得他们大都没有在 vps 上部署过博客,所以很难知道 docker 的优越性
    xiqingongzi
        50
    xiqingongzi  
    OP
       2016-04-30 08:59:58 +08:00
    @WildCat 不希望他们走出学校一无所成,能引路就引路吧。之前教了他们在 VPS 上部署 WordPress ,过程很艰难。
    wph95
        51
    wph95  
       2016-04-30 10:08:43 +08:00
    @frozenshadow -.- 的确是呀
    @ryd994 其实容器大小有时候很重要的,容器大小影响容器启动速度的。
    推荐使用 dao pull 下载镜像哦

    @xiqingongzi http://open.daocloud.io/tag/python-kai-fa-zhe-de-docker-zhi-lv/
    附赠教程,如果需要其他语言的 可以提:)
    ryd994
        52
    ryd994  
       2016-04-30 10:36:23 +08:00
    @wph95 服务器在国外 G 口接入。瓶颈从来都是硬盘和 cpu ,官方源很快谢谢
    而且我用 docker 都是跑服务,做好镜像反复启动。用 overlayfs 全都是秒开
    wph95
        53
    wph95  
       2016-04-30 11:15:54 +08:00
    @ryd994 秒开也是接近 1 秒的 docker 太臃肿了。
    我做的测试 400mb 的启动在 1.0 - 1.8 秒波动
    50mb 的在 700ms - 1s 波动
    ryd994
        54
    ryd994  
       2016-04-30 11:30:38 +08:00
    @wph95 用不用这样强推啊……
    我是用 docker 跑服务,至少半年没重启过了
    哪怕启动要 1 分钟都无所谓的
    我最近在研究自动发现,有服务自动发现的话,容器轮流重启,不论启动耗时多久,都是 0 downtime
    KgM4gLtF0shViDH3
        55
    KgM4gLtF0shViDH3  
       2016-04-30 11:33:53 +08:00 via iPhone
    哪个学校啊,看看能不能蹭课
    wph95
        56
    wph95  
       2016-04-30 11:45:19 +08:00   1
    @ryd994 只是说明下在某些场景下 镜像大小还是有点重要的
    当然很多场景下是不 care 的
    xiqingongzi
        57
    xiqingongzi  
    OP
       2016-05-01 11:20:34 +08:00
    @bestkayle 黄冈师范学院~肯定是蹭不了了~
    bjrjk
        58
    bjrjk  
       2016-05-01 20:18:06 +08:00
    @laosb 这种学校的学生会有人听?
    laosb
        59
    laosb  
       2016-05-01 20:35:42 +08:00
    @bjrjk 噗,目前我校情况在:
    「有兴趣吗?」
    「有」
    「那就好好学」
    「好」br />……
    「这个很简单啊,……,你自己有去操作过么」
    「没有,没时间,下周要 xxx 考试、下个月要 xxx 」

    对于沉迷于应试教育不能自拔的人,我没办法。
    guyskk
        60
    guyskk  
       2016-05-02 00:16:42 +08:00 via Android   1
    我也打算在社团做个 docker 分享,不过还没准备好。大概思路是讲明白 docker 能用来干嘛,主要解决什么样的问题,再介绍 /演示用 docker 一键部署几个好玩的东西,比如 minecraft 。具体怎么用不必讲,网上教程那么多自己学去。
    xiqingongzi
        61
    xiqingongzi  
    OP
       2016-05-02 05:59:22 +08:00 via Android
    @bjrjk 前期层开过 Linux 的课程,还有 30 多个人。我觉得还算 ok ,人太多我也搞不定

    @guyskk 感谢。
    wizardforcel
        62
    wizardforcel  
       2016-05-12 08:59:56 +08:00 via Android
    不要光讲课,实践也是很重要的。

    考试比例不超过 30%。然后设置三个 project ,每个 20%,每个人都要动手去做,做完了当着全班的面展示,这样就不会不自己做了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5455 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 03:29 PVG 11:29 LAX 19:29 JFK 22:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86