CoreOS 在 PC 上快速安裝方法指南

philo發表於2015-07-17

意義

能夠以最快的速度安裝部署Linux作業系統。安裝快速簡單,幾乎不花時間就可以開始執行Docker。執行速度非常快。使用記憶體硬碟。

我的情況

win8 筆記本偶爾玩遊戲,但是裝Linux雙系統可能需要我一天的時間來完成。我的所有業務都只需要在Docker中跑就可以了。而且我膝上型電腦記憶體夠大16g (感謝HUST 姜老師)。

CoreOS 在 PC 上快速安裝上手

準備

  1. CoreOS image 下載地址
  2. EasyBCD 下載地址

開工

  1. 安裝EasyBCD新增ISO引導項檔案直接使用CoreOS的livecd image
    詳細步驟帶截圖:http://jingyan.baidu.com/article/466506586ed309f549e5f81c.html
  2. 啟動CoreOS完成CoreOS安裝

更新

只需要給啟動用的ISO檔案更新即可。

缺點

  1. 不能持久化(帶來的優點,玩壞了,直接重啟即可)
  2. 整個作業系統都在硬碟中生成的檔案直接佔用硬碟空間(帶來的優點,硬碟速度提升非常高)
  3. 每次開機手動掛載硬碟空間,手動執行整個系統的初始化指令碼。

結合優缺點這裡建議這套配置給有確定業務的工作來做還可以,如果業務比較多,可能需要優化的點比較多。

配置

  1. 在硬碟上開一個100g大小的空間,並格式化,參考命令:mkfs.ext4 /dev/sda2 ,然後掛載。如果您不明白如何分割槽格式化並且掛載,請看考這裡。這篇文章可以說是我見過關於初級磁碟管理最好的一篇文章了。
  2. 掛載之後複製資料夾/var/lib/docker/ 到掛載的位置,再軟連線回去。(然後docker images就可以持久化放到硬碟裡面了重啟不會丟失)。參考操作如下:
    cp -rf /var/lib/docker /mnt/
    rm -rf /var/lib/docker
    ln -s /mnt/docker /var/lib/docker

我的初始化檔案參考

mkdir /root/.ssh
echo "ssh-rsa xxx..(省略)....xx 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

就可以搞定。

CoreOS.iso 遇到的坑2

不斷確認KnowHosts。

參考解決 https://github.com/lijianying10/FixLinux/blob/master/note/取消sshPublicKeyKnowHost認證.md

總結

用這種方法在PC中部署Linux實在是太方便了。熟悉Docker一套的這種想法可能20分鐘就可以根據自己的情況搞定。
我找到了這個思路之後經過各種權衡。

  1. 為了快速解決引導問題 用EasyBCD 直接引導記憶體ISO啟動 換 折騰UEFI Grub的問題
  2. 為了減少配置環境帶來的時間成本從普通安裝到硬碟裡面的髮型版本 換 CoreOS
  3. 為了避免錯誤操作Or版本升級給系統帶來的不穩定因素 換 Docker
  4. 在未來也許 換 RKT,RunC(希望大嬸們快點填坑,RunC說這個月Release不知道會不會跳票)
  5. 注意本方案是不惜一切代價用最簡潔的環境配置來換開發時間。完美主義喜歡折騰的小夥伴可能要繞行了。

相關文章