普通群众玩Docker

现在有些开源软件很过分,直接就只发布Docker镜像,让人不得不学点Docker。

对于我这种平时用Windows的普通群众,Docker有一个Boot2Docker的选择,但风闻这个阉割版限制颇大,所以还是决定用VirtualBox + CoreOS。

为什么是CoreOS?因为又是风闻这是体积最小且与Docker最亲近(虽然最近分了家)的Linux版本。

网上已有的教程都需要从头装CoreOS,还要Vagrant什么的,在同事帮助下摸索了一个更简单的步骤如下:

1. 下载安装VirtualBox (~100M)

2. 下载CoreOS的VirtualBox镜像 (~100M)

http://stable.release.core-os.net/amd64-usr/current/下载coreos_production_virtualbox.ovf 与 coreos_production_virtualbox_image.vmdk.bz2 ,并用WinRar将bz2文件解压到与ovf文件同一目录下。

因为URL里很悲催的包含了某个敏感的数字,又被没文化的墙程序员给墙了,请自备梯子。

3. 在VirtualBox里import 那个ovf文件,启动镜像。

4. 设置用户密码

CoreOS并没有默认密码,一般像AWS EC2那样用SSH Key解决,但VirtualBox的镜像想再往里加个SSH Key不易,因此走另一条路,用autologin。

在登录过程中,在 GUN GRUB按键盘的上下箭头,选择Cor OS default,再按‘E’键修改启动参数, 在最后一行的末尾加上 `console=tty1 coreos.autologin=tty1` ,然后F10保存后启动。
无密码进入后,再sudo passwd core 修改默认用户core的密码。

5. 设置支持本地ssh登录

在虚拟机的Setting->Network->Port Forwarding里,增加一个 Host IP 127.0.0.1 Host Port 2222 Guest Port 22的映射,则本地可以用 ssh core@localhost -P 2222 登录

好了,可以开始Docker体验~~~如果手头没什么Docker的入门书,就直接看官网的User Guide,不过在HelloWorld的例子里,第一条指令sudo docker run ubuntu:14.04 /bin/echo 'Hello world'就要下载一个 200M左右的 Ubuntu镜像,又有一阵要等。

等的时候,可以看看《一个不是很短的Docker入门介绍》《Docker终极指南》 这两篇文章。

 
文章持续修订,转载请保留原链接:http://calvin1978.blogcn.com/articles/begintodocker.html

This entry was posted in 技术. Bookmark the permalink.

11 Responses to 普通群众玩Docker

  1. bookee says:

    刚好一个月用这种方式搭建了一套

  2. jintao says:

    Nice

  3. howie says:

    貌似不错,周末玩一下。多谢!

  4. penicillus says:

    在最后一行的末尾加上 `console=tty1 coreos.autologin=tty1` ,然后F10保存后启动。这句话好像不起作用,还是要密码

  5. 匿名 says:

    你好,执行sudo的时候提示command not found,是什么原因呢

  6. justin says:

    请问关于ssh配置的,出来说的端口转发外,还有其他需要配置吗?我按照文中写的配好了,可是ssh还是连不上。

  7. newiuce says:

    我也是在无密码登录时遇到困难,按照这个地址的方法搞定了(http://www.dayunet.com/virtualbox-coreos.html),即在$usr_uuid后面添加 coreos.autologin

  8. Pingback: 普通群众玩Docker-鲸鱼云

  9. Pingback: 普通群众玩Docker-鲸鱼云

发表评论

您的电子邮箱不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>