一:起因
我玩客云是装了armbian,然后docker了home-assistants+openwrt
昨晚发现旁路由不能出国学习了,打开酸酸乳一看,所有配置都丢失了,登录宿主机一看,磁盘100%的使用了
查看挂载情况,确定100%
记录一下容器名称和镜像,万一折腾挂了,能重新pull回来
刚开始docker ps -a 由于没有磁盘空间,查看不到容器,使用了apt-get clean 清除了一下宿主缓存
du -h --max-depth=1可以用查看目录大小,确定文件占用情况
二:开始折腾
插入U盘
fdisk /dev/sda
输入m,进入菜单
输入n,新建分区
默认回车,
输入w,写入分区信息
yes确认,完成分区建设,返回#
格式化命令为 mkfs.ext4 /dev/sda1
等待格式化完成
可以新建一个目录
mkdir /mnt/disk
然后把U盘挂载到这个目录
mount /dev/sda1 /mnt/disk
设置为每次开机就挂载
编辑 vi /etc/rc.local
在exit 0代码前面
输入命令 mount /dev/sda1 /mnt/disk
完成自动挂载,接着迁移docker
先暂停docker
service docker stop
这里遇到直接停止docker会自动重启/断连,主要是docker下的OenCloud容器造成,所以先把所有容器都设为不自动启动docker container update --restart=no [容器ID] 再reboot后就能正常暂停docker服务了
之后在U盘挂载的目录新建一个文件夹
mkdir /mnt/disk/docker/
然后把docker的文件都迁移到/mnt/disk/docker/目录中
命令为:
rsync -avz /var/lib/docker/ /mnt/disk/docker/
之后编辑 /etc/docker/daemon.json 配置文件,如果没有这个文件,那么需要自己创建一个,根据上面的迁移目录,基础配置如下:
{ "data-root": "/mnt/disk/docker/"}
将容器服务启动起来
把原来设为不自动启动docker container update --restart=no [容器ID] 的no改回always
service docker start
这样子之后你在docker安装的所有东西都会安装在U盘里
如果报错,记录一下
报:Failed to start Docker Application Container Engine.
原因是/etc/docker/daemon.json新建内容不对,导致docker的daemon服务没起来
修改下/etc/docker/daemon.json就好增加registry-mirrors
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://registry.docker-cn.com"
]
最终daemon.json文件
再重启一下docker
systemctl daemon-reload
systemctl restart docker
三:扩展
有了U盘可以考虑安装宝塔了,先记录一下前人使用的方法
接下来说宝塔的迁移,因为宝塔要在/www文件夹里运行,所以宝塔的迁移方式有一点不一样
安装过宝塔的可以先卸载了,或者 rm -rf /www 把这个www文件夹删除了,然后新建 mkdir /www/
之后在U盘里新建目录 mkdir /mnt/disk/www
用软连接的命令(相当于创建快捷方式)
ln -s 源文件 目标文件源文件在U盘里为U盘新建的目录/mnt/disk/www,目标文件为/www总的来说命令为 ln -s /mnt/disk/www /www这一步完成之后就可以直接用宝塔的安装命令了wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh慢慢等待吧
这样子之后,你在宝塔里安装的所有内容php,mysql之类的或者可道云,博客网站 都会安装在U盘
一般来说这两个搞定之后,大多数的大应用都可以通过宝塔和docker安装,玩客云盒子本身的占用不会超过4g
学习参考:https://www.right.com.cn/FORUM/thread-4066384-1-1.html
四:总结
我在想,要不要把home-assistants容器删除算了,现在ha还是不会玩,有点折腾人,自动化都没实现过,现在有用的只是网页控制一下broadlink联博的四位插座,本身APP就能控制,还不会跟小米的联动起来,有点想放弃了!
暂无评论