CoreOS如何在PC上快速安裝
我的情況
win8 筆記本偶爾玩游戲,但是裝Linux雙系統(tǒng)可能需要我一天的時(shí)間來(lái)完成。我的所有業(yè)務(wù)都只需要在Docker中跑就可以了。而且我筆記本電腦內(nèi)存夠大16g (感謝HUST姜老師)。
準(zhǔn)備
開(kāi)工
- 安裝EasyBCD添加ISO引導(dǎo)項(xiàng)文件直接使用CoreOS的livecd image
詳細(xì)步驟帶截圖:http://jingyan.baidu.com/article/466506586ed309f549e5f81c.html - 啟動(dòng)CoreOS完成CoreOS安裝
更新
只需要給啟動(dòng)用的ISO文件更新即可。
缺點(diǎn)
- 不能持久化(帶來(lái)的優(yōu)點(diǎn),玩壞了,直接重啟即可)
- 整個(gè)操作系統(tǒng)都在硬盤中生成的文件直接占用硬盤空間(帶來(lái)的優(yōu)點(diǎn),硬盤速度提升非常高)
- 每次開(kāi)機(jī)手動(dòng)掛載硬盤空間,手動(dòng)運(yùn)行整個(gè)系統(tǒng)的初始化腳本。
結(jié)合優(yōu)缺點(diǎn)這里建議這套配置給有確定業(yè)務(wù)的工作來(lái)做還可以,如果業(yè)務(wù)比較多,可能需要優(yōu)化的點(diǎn)比較多。
配置
- 在硬盤上開(kāi)一個(gè)100g大小的空間,并格式化,參考命令:
mkfs.ext4 /dev/sda2
,然后掛載。如果您不明白如何分區(qū)格式化并且掛載,請(qǐng)看考這里。這篇文章可以說(shuō)是我見(jiàn)過(guò)關(guān)于初級(jí)磁盤管理***的一篇文章了。 - 掛載之后復(fù)制文件夾
/var/lib/docker/
到掛載的位置,再軟連接回去。(然后docker images就可以持久化放到硬盤里面了重啟不會(huì)丟失)。參考操作如下:
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
先導(dǎo)入rsakey,然后軟連接到docker位置。
添加daocloud 加速(官方雖然沒(méi)寫(xiě)CoreOS怎么加速,但是有大神給出了方法),因?yàn)槲也患铀俦燃铀倏欤赃@里就先注釋掉。作為備選方案。
systemd遇到的坑
如果docker中返回錯(cuò)誤-1容器就會(huì)掛掉。但是systemd中還存在scope。
當(dāng)啟動(dòng)問(wèn)題容器會(huì)提示
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
不斷確認(rèn)KnowHosts。
參考解決 https://github.com/lijianying10/FixLinux/blob/master/note/取消sshPublicKeyKnowHost認(rèn)證.md
總結(jié)
用這種方法在PC中部署Linux實(shí)在是太方便了。熟悉Docker一套的這種想法可能20分鐘就可以根據(jù)自己的情況搞定。
我找到了這個(gè)思路之后經(jīng)過(guò)各種權(quán)衡。
- 為了快速解決引導(dǎo)問(wèn)題,用EasyBCD直接引導(dǎo)內(nèi)存ISO啟動(dòng),換折騰UEFI Grub的問(wèn)題。
- 為了減少配置環(huán)境帶來(lái)的時(shí)間成本從普通安裝到硬盤里面的發(fā)型版本,換CoreOS。
- 為了避免錯(cuò)誤操作Or版本升級(jí)給系統(tǒng)帶來(lái)的不穩(wěn)定因素,換 Docker。
- 在未來(lái)也許換 RKT,RunC(希望大嬸們快點(diǎn)填坑,RunC說(shuō)這個(gè)月Release不知道會(huì)不會(huì)跳票)。
- 注意本方案是不惜一切代價(jià)用最簡(jiǎn)潔的環(huán)境配置來(lái)?yè)Q開(kāi)發(fā)時(shí)間。***主義喜歡折騰的小伙伴可能要繞行了。