CoreOS在PC上快速安装上手

jopen 9年前

意义

避免不必要的中间过程
安装快速简单,几乎不花时间就可以开始运行Docker。
运行速度非常快。使用内存硬盘。

我的情况。

win8 笔记本偶尔玩游戏,但是装Linux双系统可能需要我一天的时间来完成。
我的所有业务都只需要在Docker中跑就可以了。
而且我笔记本电脑内存够大16g (感谢HUST 姜老师)

准备

  1. CoreOS image
  2. EasyBCD

开工

  1. 安装EasyBCD添加ISO引导项文件直接使用CoreOS的livecd image
  2. 启动CoreOS完成CoreOS安装

更新

只需要给ISO文件换一个即可。

缺点

  1. 不能持久化(带来的优点,玩坏了,直接重启即可)
  2. 整个操作系统都在硬盘中生成的文件直接占用硬盘空间(带来的优点,硬盘速度提升非常高)
  3. 每次开机手动挂载硬盘空间,手动运行整个系统的初始化脚本。

结合优缺点这里建议这套配置给有确定业务的工作来做还可以,如果业务比较多,可能需要优化的点比较多。

配置

  1. 在硬盘上开一个100g大小的空间,并格式化,参考命令:mkfs.ext4 /dev/sda2然后挂载
  2. 挂载之后复制 文件夹/var/lib/docker/到挂载的位置在软连接回去。(然后docker images就可以持久化放到硬盘里面了重启不会丢失)

我的初始化文件参考

mkdir /root/.ssh  echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcTvSn5METOJUKXRr+Sa92eL2PRZlHb5tdKMublwgvHWaYNxJyXrxCARmBCy8VAo6rb/OeTsyuMWjZ7fVpxKc32ZkcBoIRL7YNkAonO8nHMSLvWUSKkwo7wfWubJhBQtDjvJ40WIcECrFkssFxbcl9YuUeZjdclmcylBkfwzdHJl7c3NtOjtCosN1RUDQZZJEJzKpSNcYtX/D1fPY9MovDWAeQ+xcLb6Gy5rnCTfyGgZDowyDpFNNe+j0a9G1zjlEww3GvOD/UUIf7hDaji+HjO8/sLfHjfAWWULStoEl/aUoofs93QVQFxCPOeYnZR/QL8MkfXQmwme7Nv7xBeqrt Li-jianying@lijianyings-MacBook-Pro.local" > /root/.ssh/authorized_keys    rm -rf /var/lib/docker  ln -s /mnt/docker /var/lib/docker  #echo 'DOCKER_OPTS="--registry-mirror=http://XXXXX.m.daocloud.io"' >> /run/flannel_docker_opts.env  #systemctl daemon-reload  systemctl restart docker  # using disk

先导入rsakey,然后软连接到docker位置
添加daocloud 加速(官方虽然没写CoreOS怎么加速,但是有大神给出了方法)
因为我不加速比加速快所以这里就先注释掉。作为备选方案。

systemd遇到的坑

如果docker中返回错误-1容器就会挂掉。但是systemd中还存在scope。
当启动问题容器会提示
Error response from daemon: Cannot start container test: [8] System error: Unit docker-e10eb86807cd9971fc03a8eee732771193d506ed2ba678fdf4292916a9fb072c.scope already exists.

那么
systemctl stop docker-e10eb86807cd9971fc03a8eee732771193d506ed2ba678fdf4292916a9fb072c.scope

就可以搞定。

总结

用这种方法在PC中部署Linux实在是太方便了。熟悉Docker一套的这种想法可能20分钟就可以根据自己的情况搞定。
我找到了这个思路之后经过各种权衡。

  1. 为了快速解决引导问题 用EasyBCD 直接引导内存ISO启动换折腾UEFI Grub的问题
  2. 为了减少配置环境带来的时间成本从普通安装到硬盘里面的发型版本换CoreOS
  3. 为了避免错误操作Or版本升级给系统带来的不稳定因素换Docker
  4. 在未来也许换RKT,RunC(希望大婶们快点填坑,RunC说这个月Release不知道会不会跳票)
  5. 注意本方案是不惜一切代价用最简洁的环境配置来换开发时间。完美主义喜欢折腾的小伙伴可能要绕行了。
来自:http://www.philo.top/2015/07/16/pc-docker/