查看原文
其他

docker:一键运行,玩转奔跑吧入门篇

小笨叔 奔跑吧Linux社区 2019-04-24

 docker是个好东西,一键运行,玩转奔跑吧入门篇,无比畅快




自从奔跑吧入门篇出来之后,笨叔之前搞了一个vmware+优麒麟Linux 18.04的全套实验环境的虚拟机镜像。但是有不少同学纷纷留言,希望笨叔搞一个docker镜像。


docker是好东西,运行效率高,而且轻巧,但是docker做奔跑吧实验还是有缺点:

  1. docker镜像不能做内核编译实验,比如书中第1章实验1和实验2

  2. 不能做kdump实验,比如书中的第11章实验17等。

  3. 笨叔的实验代码里,每个实验代码都配备了一个额外的实验说明,用MS word写的,在docker里打不开,需要大家在Linux host主机用Lireoffice打开了。主要是笨叔担心有的同学实验做不出来,~_~, 有可能是笨叔多虑了~_~


  4. docker默认不支持图形界面,所以eclipse+gdb图形化单步调试内核的实验做不了,比如第三章实验3。


如果大家觉得docker还是不爽,笨叔建议:

  1. 直接在电脑里做优麒麟Linux 18.04,别玩啥鸟虚拟机了

  2. 如果不行,那就用笨叔做好的vmware+优麒麟的镜像。




安装docker



废话少说,下面来教大家怎么玩docker。(下面以优麒麟Linux 18.04为例)

  1. 安装docker

    #sudo apt install docker docker.io

  2. 创建docker组 

    #sudo groupadd docker 

  3. 将当前用户加入docker组 

    #sudo gpasswd -a ${USER} docker 

  4. 重启docker 

    #sudo service docker restart 

    #sudo service docker enable

  5. 刷新docker组 

    #newgrp - docker




运行docker



笨叔已经把docker镜像上传到dockerhub上了。


下面一键就可以下载并运行docker啦:

$docker run -it --rm benshushu/runninglinuxkernel:rlk_basic_ubuntu bash


效果如图:


实验代码是在/root/rlk/runninglinuxkernel_4.0目录下面。

另外这个docker里配备了vim 8,以及笨叔推荐的全套vim插件,用来编辑内核代码,爽歪歪!!


保存docker



如何保存docker里面的内容?

  1. 输入docker ps命令查看当前commit id

    上面可以看到container id是d54d1a0a4247

   2. 通过docker commit命令来提交改动


#docker commit -m "add ben folder" d54d1a0a4247 benshushu/runninglinuxkernel:rlk_basic_ubuntu


docker commit :从容器创建一个新的镜像。

# docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

-m :提交时的说明文字;

-p :在commit时,将容器暂停。

  

   3. 退出当前docker,重新登录,就会看到改动已经在了。





配套资源



1. 配套实验代码

配套实验代码仓库在码云上,大家可以自行下载。

# git clone https://gitee.com/benshushu/runninglinuxkernel_4.0.git

# git checkout rlk_basic


2. 配套课件下载

我们制作了精美的课件,免费提供给广大读者。

课件已经上传到码云,稍后会上传到异步社区官方主页。

想尝鲜的小伙伴可以看这里:

https://gitee.com/benshushu/Running-LinuxKernel


3. 配套实验环境

为了方便广大读者能快速做实验,我们基于优麒麟Linux 18.04系统做了一个vmware镜像,在这个镜像里,包含了我们的全部实验代码,以及实验环境,大家下载下来开箱即用!


想尝鲜的小伙伴可以通过如下百度网盘来下载(稍后会上传到异步社区官网):


https://pan.baidu.com/s/1XlJzdUBH_V7IwNRH1R4jrg



4. 配套免费补充视频

为了广大小伙伴能快速入门,我们精心制作了高清视频,购买了入门酱香篇的小伙伴可以在线观看。稍后会上传到异步社区网站,请关注异步社区官网或者奔跑吧Linux社区微信公众号。


购买地址:

  1. 异步社区:

    https://www.epubit.com/book/detail/39321

    可以现在购买了,点击“阅读原文”。

  2. 京东自营:https://item.jd.com/12546036.html

  3. 当当自营:http://product.dangdang.com/26514293.html


[往期精彩]

从鸟哥私房菜到Linux专家只差一本奔跑吧入门篇

异步社区专访笨叔:人生99%的时间都是平平淡淡的

《奔跑吧Linux内核》第二版意见收集

[代码导读4]物理页面分配

[代码导读3] 页表映射过程

第二季旗舰篇终于来了,进程管理、中断管理和锁机制三合一

[旗舰篇] 第一季旗舰篇资料汇总

不能不会的VIM+GIT

《奔跑吧Linux內核》繁體版預覽

[笨叔点滴15]ARMv8里异常处理哪些蛇神牛鬼 2

[笨叔点滴14] ARMv8里异常处理哪些蛇神牛鬼 1

[笨叔点滴13]哪些异常处理的事儿

[笨叔点滴12]面试必考:如果在中断处理函数里发生了缺页中断会怎样?为什么?

[笨叔点滴11] malloc惹的祸

[笨叔点滴10] 中断到“底”来了吗?

[笨叔点滴9] GNU GCC扩展2

[笨叔点滴8] GNU C语言的扩展

[笨叔点滴7] 再也回不去的C语言

[笨叔点滴6] 叔,这个git咋玩啊?

[笨叔点滴5] git rebase和git merge究竟有啥区别?

[笨叔点滴4]“栈”谁便宜了2

[笨叔点滴3] “栈”谁便宜了?

[笨叔点滴2] 为啥子ARM32体系结构中每个处理模式都有一个单独的栈?

[笨叔点滴1] 为什么do_page_fault函数里代码需要判断用户态还是内核态?

LinuxCon 2018北京游记(1)

LinuxCon2018北京笨叔笨游记 2

《奔跑吧linux内核》配套资源迁移到码云上

考点来了:4月18号视频更新

代码导读之如何使用qemu来单步调试head.S

代码导读之内存管理初始化 - 启动汇编

视频更新:内存管理代码框架导读

DMA那些事儿

私密VIP群答疑

高级运维必杀技:如何图形化单步调试RHEL/Centos 7里的内核?

首发:Meltdown漏洞分析与实践

[奔跑吧Linux内核] 故乡

致敬Beyond


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存