zasdfgbnm zasdfgbnm
关注数: 0 粉丝数: 22 发帖数: 2,021 关注贴吧数: 6
分享一个比较清奇的archlinux的安装跟维护的方法。 分享点最近在搞着玩的私货。有个东西,叫做docker,长这个样子他的一个很好用的功能是提供一种一键式的生成系统镜像的方法:写一个Dockerfile,比如说下面这个然后只需要docker build . -t name一条命令就可以生成根据Dockerfile生成一个系统镜像。 然后,还可以去docker公司提供的DockerHub注册帐号,他们家的帐号提供免费的公开空间,可以把自己生成的镜像存到他们那里去。镜像生成以后,只需要docker push name一条命令就可以把生成的镜像推送到云存储里面去。然后当需要下载自己的镜像了,只需要docker pull name一条命令就行。如果想用镜像的内容当成系统盘来开启一个容器(容器通俗来讲就是轻量级的虚拟机),直接用docker run -it name bash就行。 所以我想干什么呢?我想利用docker创建镜像跟云同步的便利,把我的整个系统给docker化。具体来讲,就是把整个系统的安装配置流程写成一个Dockerfile,然后用docker生成一个镜像。这样的话这个docker镜像的内容就是我的整个系统的内容了。然后,自然要云同步啦。然后,在initramfs里面加一些东西,这些东西干的事情就是,从docker的本地缓存里面把我这个镜像的内容找出来,挂载成根目录,然后启动systemd进行初始化,这样我就能直接把我的docker镜像当主力系统了。 这样的话,会有很多好处: 1. 本地永远只是使用云端的一份缓存而已,“系统备份”这个概念从根上就是不必要的。 2. 如果你有多台电脑,当你想要安装新的软件,或者更改新的设置的时候,不是直接改系统文件,而是改dockerfile重新生成。然后所有用这个镜像的机器都能直接通过docker pull来使用上最新版的镜像,配置一次,同步所有机器。 3. 再也不需要pacman -Syu了,正确的系统更新方法是docker build重新构建一份镜像,然后docker push推送到云端。每次“系统更新”本质上不是系统更新,而是从头有安装配置了一遍系统,再也不会存在有的更新需要认为干预的问题了,也不用担心滚挂了。 4. 如果有洁癖,非常不喜欢不被pacman管理的文件的话,这简直是福音。因为每次启动看到的都是镜像的内容,这就跟装了还原精灵一样,上次运行产生的垃圾文件全都不见。 5. 如果有新电脑需要装机,也不需要从头安装操作系统了,把启动器装上,然后配置好initramfs,然后从云端拉个镜像过来,装机结束。 6. 偶尔需要用一下别人的电脑,或者公共电脑的时候,又感觉配置的不如自己的顺手的时候,只需要装上个docker,docker pull一键拉取镜像,然后再在容器中启动KDE桌面(gnome等其他的也可以),就可以使用到跟自己电脑上一模一样的系统了。 折腾了若干天,终于在三天前折腾成功了。mkinitramfs的hook在放到github去了: http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fgithub.com%2Fzasdfgbnm%2Fmkinitcpio-docker-hooks&urlrefer=08fc7e89fe14351b6f18784e50393943 然后,花了两天的时间写了个教程: http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fzasdfgbnm.github.io%2F2017%2F12%2F28%2F%25E6%258A%258Adocker%25E9%2595%259C%25E5%2583%258F%25E5%25BD%2593%25E4%25BD%259C%25E6%25A1%258C%25E9%259D%25A2%25E7%25B3%25BB%25E7%25BB%259F%25E6%259D%25A5%25E7%2594%25A8%2F&urlrefer=b717f174460781293cd495c3ae469066
1 下一页