CoreOS如何在PC上快速安裝
我的情況
win8 筆記本偶爾玩游戲,但是裝Linux雙系統可能需要我一天的時間來完成。我的所有業務都只需要在Docker中跑就可以了。而且我筆記本電腦內存夠大16g (感謝HUST姜老師)。
準備
開工
- 安裝EasyBCD添加ISO引導項文件直接使用CoreOS的livecd image
詳細步驟帶截圖:http://jingyan.baidu.com/article/466506586ed309f549e5f81c.html - 啟動CoreOS完成CoreOS安裝
更新
只需要給啟動用的ISO文件更新即可。
缺點
- 不能持久化(帶來的優點,玩壞了,直接重啟即可)
- 整個操作系統都在硬盤中生成的文件直接占用硬盤空間(帶來的優點,硬盤速度提升非常高)
- 每次開機手動掛載硬盤空間,手動運行整個系統的初始化腳本。
結合優缺點這里建議這套配置給有確定業務的工作來做還可以,如果業務比較多,可能需要優化的點比較多。
配置
- 在硬盤上開一個100g大小的空間,并格式化,參考命令:
mkfs.ext4 /dev/sda2
,然后掛載。如果您不明白如何分區格式化并且掛載,請看考這里。這篇文章可以說是我見過關于初級磁盤管理***的一篇文章了。 - 掛載之后復制文件夾
/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分鐘就可以根據自己的情況搞定。
我找到了這個思路之后經過各種權衡。
- 為了快速解決引導問題,用EasyBCD直接引導內存ISO啟動,換折騰UEFI Grub的問題。
- 為了減少配置環境帶來的時間成本從普通安裝到硬盤里面的發型版本,換CoreOS。
- 為了避免錯誤操作Or版本升級給系統帶來的不穩定因素,換 Docker。
- 在未來也許換 RKT,RunC(希望大嬸們快點填坑,RunC說這個月Release不知道會不會跳票)。
- 注意本方案是不惜一切代價用最簡潔的環境配置來換開發時間。***主義喜歡折騰的小伙伴可能要繞行了。