本帖最后由 babylf 于 2024-2-1 20:59 编辑
刚玩n1没多久,很适合折腾,但奈何内存太小,docker装几个容器就满了。看了很多大佬的教程,把自己的折腾经验记录一下,方便自己以后再用。
1.刷armbian、安装docker
这个有很多教程了,不再写了。
2.移动硬盘分区、挂载
(1) 首先查看新硬盘基本信息
- fdisk -l
-
- --会罗列出很多分区地址,自行确认自己的新硬盘识别地址在哪里,我的新硬盘被识别到了”/dev/sda”。
复制代码 (2) 对新硬盘进行分区
- fdisk /dev/sda
- --[1] 这里的 /dev/sda 是步骤(1)中 查询出来的硬盘识别文件地址。如果你在步骤(1)中要格式化的硬盘存在于其他地址请相应改变。
- --[2] 在提示信息引导下,我选择(n) “add a new partition” 将硬盘划分为一个新分区。
- (p) primary ----主分区(看个人选择)
- (e) extended----扩展分区(看个人选择)
- --[3] 若整个硬盘只作为一个分区,下面三步默认回车即可;若只拿一部分空间出来当分区详细如下:
- [3-1] 第一步是分区盘号,默认回车自动分配盘号,可自己定义一下盘号例如输入4,则盘号为sda4。
- [3-2] star-是从2048字节开始,开始大小建议默认2048(默认回车即可)
- [3-3] end-输入结束字节,开始字节到结束字节为新建分区盘的大小,输入后回车即可,直接回车则默认输入最大字节。
- --[4] 最后再输出(p)确认下自己创建的分区表信息是否正确。确认无误后(w)保存。
- --[5] 如果成功,系统会提示“The partition table has been altered” 分区表已更改完毕 。
复制代码(3) 查看新硬盘识别到了哪里 重新输入(1) 内容 ,我本地的新硬盘分了两个区被识别到了 “/dev/sda1”、“/dev/sda2” 。 (4) 新硬盘格式化 2.迁移docker到硬盘 (1)挂载硬盘 - mkdir /mnt/USB # 创建目录供挂载使用
- mount -v /dev/sda1 /mnt/USB # 挂载 U 盘
- df -h # 查看挂载状态
复制代码(2)停止docker (3)迁移docker数据 - # 创建目录
- mkdir /mnt/USB/docker -p
-
- # 拷贝数据
- # -rpvb 递归/保留属性/覆盖/详细
- cp /var/lib/docker/* /mnt/USB/docker -rpvb
- mv /var/lib/docker /var/lib/docker.bak
-
- # 软连接:实际 + 目标
- ln -s /mnt/USB/docker /var/lib
-
- # 恢复步骤,删除软连接(警告!尾部没有左斜杠 /)
- #rm -rf /var/lib/docker
-
- # 生效/启动
- systemctl daemon-reload
- service docker restart
-
- # 验证
- docker info
- #docker info | grep 'docker Root Dir'
- -----------------
- 显示=成功
- Docker Root Dir: /mnt/USB/docker
-
- # 重启自动挂载 U 盘,在 rc.local
- sed -i '/exit 0/i\mount -v /dev/sda /mnt/USB' /etc/rc.local
复制代码(4)docker延迟启动 防止硬盘挂载慢,dockers启动后挂载失败 - # 移除docker自启服务
- systemclt disable docker
复制代码编辑/etc/rc.local文件,文件末尾exit0之前追加如下内容并保存:
- sleep 60
- systemctl start docker
复制代码
(5)发现新版Ubuntu没有rc.local文件了,更新fstab,更换docker源
- #首先查看UUID
- blkid
- echo "UUID=e943fbb7-020a-4c64-a48a-2597eb2496df /vdb1 ext4 defaults 0 0" >> /etc/fstab
- #或者编辑这个文件
复制代码
(6)更换docker源
- #创建或修改 /etc/docker/daemon.json 文件,修改:
- {
- "registry-mirrors" : [
- "https://registry.docker-cn.com",
- "http://hub-mirror.c.163.com",
- "https://docker.mirrors.ustc.edu.cn",
- "https://cr.console.aliyun.com",
- "https://mirror.ccs.tencentyun.com"
- ]
- }
- #重启docker服务使配置生效:
- systemctl daemon-reload
- systemctl restart docker.service
- #查看配置是否成功:
- docker info
复制代码
|