ubuntu 磁盘挂载及 docker container内容替换记录

目录

一、磁盘挂载

二、容器内容替换


一、磁盘挂载

服务器突然崩了,docker images 和 docker ps -a 不显示任何镜像和容器,遂重新拉取镜像,重新构建镜像,并将原本镜像文件复制过去,达到重建效果。(仅限于原docker无法找到,但文件未丢失情况。) 

服务器突然崩掉了,重启之后,使用docker image 和docker ps -a完全无反应,着实吓了一跳,毕竟数据全在上面。遂使用

df -h

检查挂载点与挂载的数据大小。经查询,发现原本存储数据的硬盘挂载点不见了,于是使用

fdisk -l

查看所有磁盘信息。万幸,只是挂载掉了,还能查到设备,遂用mount临时挂载。

# 临时挂载  mount  (你的设备名)  (你选择的挂载点)
mount /dev/sda /home/user/data

并写入/etc/fstab中实现永久挂载。

# 永久挂载
vim /etc/fstab  #编辑挂载文件
/dev/sda    /home/user/data    ext4    defaults 0 1 #添加至末尾即可

其中/dev/sda 是设备文件(一般为设备路径+设备名称)

/home/user/data 是挂载目录,需要在挂载前创建好

ext4 是指定文件系统格式,如Ext3、Ext3、XFS、SWAP等(请根据具体情况选择)

defaults 权限选项,为defaults时,默认权限为rw,suid,dev,exec,auto,nouser,async

0 开机后是否使用dump备份,1为备份,0为不备份

1 是否磁盘自检,1自检,0不自检。[1]

将硬盘重新挂载上了设备。

二、容器内容替换

挂载之后使用docker images 和docker ps -a还是没有镜像和容器,进入到docker/containers发现容器都在,但是容器内config.v2.json为空,并且docker/image/overlay2/imagedb/metadata/sha256下没有镜像id。好嘞,直接吓死。以为恢复不了了,但之前重新挂载磁盘后,发现磁盘大小并没有改变。说明文件还在,只是不知道什么原因docker链接不上了,于是进入docker/overlay2中,发现之前的容器id还在,于是想到是否可以重新构建容器并将原来数据拉过去,实现借壳重生。于是重新拉取之前使用的镜像,构建了新容器。

使用

docker inspect 容器ID

查看新建容器的存储ID,找到GraphDriver下的UpperDir,就是新容器数据的存储地址。

然后进入到容器ID所在的文件夹,使用mv将diff重命名为diff_old,再将原来链接不上的diff直接移动到新建容器的ID下就实现了借壳重生了。

注:如果找不到原本容器太多,找不到对应的原容器,可以试着查找最大文件来确定原容器存储ID。

目前来看,基本没有什么问题,不过可能需要新建的容器和原本容器使用的镜像一致,或者是同一个版本的系统。(不同版本系统未尝试)

reference:

[1]Linux--磁盘存储管理 挂载(临时、永久)_永久挂载-CSDN博客

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误提示"Failed to start Docker Application Container Engine"表明在Ubuntu操作系统中启动Docker容器引擎失败了。这可能是由于多种原因导致的。 一种可能的原因是Docker服务未正确安装或未正确配置。你可以通过检查Docker的安装和配置来解决此问题。确保已按照正确的步骤安装了Docker,并且配置文件具有正确的设置。 另一种可能的原因是系统资源不足。Docker需要一定的系统资源才能正常运行,包括CPU、内存和存储空间。如果系统资源不足,可能会导致Docker启动失败。你可以通过检查系统资源使用情况来解决此问题,并尝试释放一些资源以供Docker使用。 此外,还可能是由于其他软件或进程与Docker冲突造成的。例如,如果有其他容器化平台或虚拟化软件正在运行,可能会导致Docker无法启动。你可以尝试停止其他相关软件或进程,并重新启动Docker来解决冲突。 最后,确保你的操作系统和Docker版本兼容。有时,某些操作系统版本可能不适用于特定的Docker版本,可能会导致启动失败。确保你正在使用支持的操作系统和Docker版本。 综上所述,当Ubuntu提示"Failed to start Docker Application Container Engine"错误时,你可以检查Docker的安装和配置,检查系统资源使用情况,停止可能与Docker冲突的软件或进程,并确保操作系统和Docker版本兼容来解决此问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ubuntu docker启动失败Failed to start Docker Application Container Engine.](https://blog.csdn.net/weixin_44580216/article/details/124208733)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [docker错误【Failed to start Docker Application Container Engine.】](https://blog.csdn.net/qq_39004379/article/details/119892782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值