现在的位置: 首页Linux, OS>正文
boot2docker.iso定制
2015年09月20日 Linux, OS 暂无评论 ⁄ 被围观 1,651 view+

定制自己的boot2docker.iso

观察boot2docker-vm的设置,我们可以看到,boot2docker-vm以光盘方式启动,iso来自于你PC上的/Users/yourname/.boot2docker/boot2docker.iso。那么在实践中,我们可以自己制作iso并替换掉它。

为什么要定制

默认的boot2docker.iso可能无法满足你的全部需求,那么就或多或少的阻碍到你了,并且在boot2docker重启后,你的一些配置就会消失,还原到原有的,这样对你来说就非常的不方便。故而需要特殊化。

  • 更改时区
  • 安装软件
  • 添加脚本
  • 结合业务环境

如何定制

基本流程

运行如下命令

$ docker pull boot2docker/boot2docker
$ docker run --rm boot2docker/boot2docker > boot2docker.iso

你就可以得到一个默认的boot2docker.iso。

一言以蔽之,制作boot2docker.iso的关键是boot2docker/boot2docker。通过运行boot2docker/boot2docker image以及对其Dockerfile的观察我发现:boot2docker/boot2docker image $ROOTFS目录下的 目录结构跟 boot2docker-vm的目录结构一模一样。So,在boot2docker/boot2docker image下对$ROOTFS所做的更改,都将通过makeiso.sh制作到boot2docker.iso中。

定制案例

Dockerfile示例

//镜像使用
FROM boot2docker/boot2docker
//添加脚本
COPY start.sh $ROOTFS/opt/init.sh
RUN chmod 755 $ROOTFS/opt/init.sh
// 更改boot2docker-vm的欢迎界面
RUN echo "" >> $ROOTFS/etc/motd; \
    echo "hello jiunile boot2docker vm" >> $ROOTFS/etc/motd; \
    echo "Icyboy <xupeng.js@gmail.com>" >> $ROOTFS/etc/motd; \
    echo "" >> $ROOTFS/etc/motd
//设置 boot2docker start 时运行脚本
RUN sed -i "102i\    /opt/init.sh" $ROOTFS/usr/local/etc/init.d/docker
RUN sed -i '103i\    echo "/opt/init.sh" >> "$DOCKER_LOGFILE"' $ROOTFS/usr/local/etc/init.d/docker
//修改时区
RUN sed -i "s/append loglevel=3/append tz=CST-8 loglevel=3/g" /tmp/iso/boot/isolinux/isolinux.cfg
RUN /make_iso.sh
CMD ["cat", "boot2docker.iso"]

使用:

docker build -t="xx" .
docker run --rm xx > boot2docker.iso
//将生成的boot2docker.iso 替换你Windows/Mac下安装boot2docker的boot2docker.iso即可。

看到这里,我相信你可以根据自己的需求制作自己的boot2docker.iso了。

给我留言

留言无头像?


×
腾讯微博