Docker vs Vagrant
为了解决固件编译环境的种种问题,我们尝试了使用vagrant来创建一个编译环境的镜像,但是vagrant基于VM的实现导致了对于宿主机的要求很高,同时编译多个release耗费相当多的系统资源,并且严重拖慢编译速度。
所以我考虑用Docker来替代vagrant,Docker提供了足够的隔离,所以可以像一个虚拟机一样运行,但是非常轻且高效,能满足所有编译环境的需求。
Build RBE Image
|
|
Run It
|
|
Util
|
|
Dockerfile
FROM
指定base image
MAINTAINER
Author信息
LABEL
描述性的,不重要
RUN
运行一些命令
CMD
每个container时候启动的,只能有一个
ENV
设置环境变量
Attach or Exec
我们有两种方式来attach到container的TTY
|
|
Attach会有个问题是如果从container中exit,那么container会被结束,而exec不会,但是exec每次执行会返回一个exit code,因为他是stdout到了stdin来得到tty结果的
配置文件
/etc/default/docker
管理docker所有启动的配置
|
|
网络
docker的网络依赖于一个linux网桥docker0
, 所以你也可以使用自己建立的网桥来处理docker container之间的网络
存储
docker支持建立数据容器,那么正常的容易可以通过--volume-from
挂载数据容器