Docker:容器与本地安装

时间:2016-01-11 11:33:11

标签: docker

在周末第一次玩Docker并看到来自irssi,mutt,浏览器等的所有内容的微小图像后,我想知道本地安装的软件包是否正在为数十个容器取代? / p>

我可以看到保持基本系统非常干净的好处,并且所有这些容器都是独立的,并且可以轻松地重新定位到不同的桌面,甚至是Windows。每个都运行像阿尔卑斯山这样的小型发行版,例如irssi等......

这是事情的发展方向还是我在这里错过了船?

2 个答案:

答案 0 :(得分:8)

Jess Frazelle不会反对你 在她的blog post "Docker Containers on the Desktop"中,她正在容纳一切。 一切

Chrome itself

$ docker run -it \
    --net host \ # may as well YOLO
    --cpuset-cpus 0 \ # control the cpu
    --memory 512mb \ # max memory it can use
    -v /tmp/.X11-unix:/tmp/.X11-unix \ # mount the X11 socket
    -e DISPLAY=unix$DISPLAY \ # pass the display
    -v $HOME/Downloads:/root/Downloads \ # optional, but nice
    -v $HOME/.config/google-chrome/:/data \ # if you want to save state
    --device /dev/snd \ # so we have sound
    --name chrome \
    jess/chrome

但是Docker容器不仅限于这种用法,而且主要是一种表示稳定定义良好且可重现的执行环境的方法,每个容器可以使用一个服务,可以从开发工作站使用到生产服务器。

答案 1 :(得分:1)

你的观点是正确的。我一直是Vagrant的长期用户,它提供了创建便携式自充气系统的简单性,使我成为一个流浪的开发人员 - 我只需要将我的私钥安全地转移到交给我的任何机器上。不久之后,我回到了我上班的地方。你不能同时穿两双鞋,所以如果你有一台机器并且很快就需要采用一个新的辅助鞋,这有助于(我为亲人购买了很棒的硬件并且在发生灾难时篡夺了)

除了浏览器客户端和文本编辑器之外,我的理想总是在我的主机上根本没有任何工具,以免遭受任何虚拟化开销。不幸的是,对于Vagrant,这要求我在某些主机功能上妥协,例如能够与编译器,测试运行器,短路等集成。

使用Docker,这不是一个问题。就像VonC节目一样,你可以想象你可以将他的代码片段包装在一个脚本中,你可以传递命令并使其行为与Chrome二进制文件一样,如果要在本地安装。

例如,我可以编写一个脚本来获取工作目录,将其安装在Node.js容器中并在源上运行eslint。我的编辑很乐意将选项传递给eslint并从STDOUT读取,完全忘记了我根本不存在于我的主机上的事实。

# eslint, as seen by the editor
docker -v $(pwd):$(pwd) $OTHER_DOCKER_ARGS run $ESLINT_IMAGE $@

这可能是过去的虚拟机管理程序,有一些深奥的SSH咒语,谁知道呢?我从来没有接受过这个想法,但是对于Docker来说,那些之前没有以这种方式工作过的人发现这种方法并不令人惊讶(作为一件好事)。