阿里云linux 挂载数据盘并docker工作目录迁移到数据盘

本文详细介绍了如何在Linux系统中对nvme1n1磁盘进行分区、格式化和挂载到mnt目录,以及如何将Docker的默认存储目录迁移到新挂载的数据盘上,包括停止Docker服务、移动数据、修改服务配置和验证操作效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、挂载数据盘,分区-格式化-挂载

1、fdisk -l 查看磁盘情况

执行命令fdisk -l 发现2个磁盘,但是磁盘nvme1n1没有分区,nvme0n1是有2个分区了。

2、fdisk /dev/nvme1n1 执行创建分区

执行命令 fdisk /dev/nvme1n1

输入n再回车创建新分区:

输入p再回车创建主分区:

输入1设置分区号:

起始扇区设置,直接回车就可以:

扇区结束位置,直接回车就可以:

最后输入w再回车保存设置:

3、格式化分区

运行 fdisk -lu /dev/nvme1n1 查看分区情况

格式化分区,并建立文件系统ext4。 执行命令:sudo mkfs.ext4 /dev/nvme1n1p1

注意:也有人说硬盘应该是买来就已经格式化过了的,说的好像也有那么些道理。但是我现在是nvme1n1这个硬盘根本看不到分区的情况下创建了一个新的分区nvme1n1p1 ,格式化一下这个分区我个人认为也没错。

4、挂载分区

执行命令:sudo mount /dev/nvme1n1p1 /mnt 将分区/dev/nvme1n1p1挂载到mnt目录下。

然后执行df 查看是否挂载成功 ,执行df -Th 查看新挂载的磁盘文件系统和其他磁盘是否一致。

5、设置开机自动挂载

sudo vim /etc/fstab 使用这个命令进入 配置文件,然后按i键进入插入编辑模式

在文件末尾增加下面的一行

/dev/nvme1n1p1 /mnt ext4 defaults 0 0

按esc退出编辑,输入 :wq 保存退出。

二、docker目录从系统盘迁移到数据盘

1、确认已经将/dev/nvme1n1 这个数据硬盘的/dev/nvme1n1p1分区挂载到了mnt目录

2、执行docker info命令,得到docker基本信息,其中可以看到 Docker Root Dir: /var/lib/docker和 Storage Driver: overlay2这两个信息,说明了docker程序文件安装在/var/lib/docker,其中overlay2为数据存储位置。

3、先停止 Docker ,保证移动的时候数据完整,执行 service docker stop 命令停止 Docker daemon。 命令:systemctl stop docker

可以用ps 命令进一步检查:ps faux | grep -i docker

4、将 Docker 默认数据目录下的数据移动到一个备份的目录,例如 /mnt/Docker_data,执行命令:

mv /var/lib/docker /mnt/Docker_data

5、把Docker 的工作目录切换到/mnt/Docker_data/docker

(1)更改Docker 服务的service 文件: vi /lib/systemd/system/docker.service

(2)使用输入 /ExecStart 搜索关键字 , 找到这一行:ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

改为:ExecStart=/usr/bin/dockerd -g /mnt/Docker_data/docker -H fd:// --containerd=/run/containerd/containerd.sock

(3) 刷新docker服务 :sudo systemctl daemon-reload

重启docker服务:systemctl start docker

(4) 查看docker状态:systemctl status docker

注意 :如果查看状态出现了失败的红色的提示,那么就要返回第3步停止服务开始,再走一遍步骤,重新修改 Docker 服务的service 文件,比如我开始的时候-H 前面少了一个空格,就报红色错误了。

### 阿里云服务器 MySQL Docker 容器自动停止删除数据库的原因 当在阿里云服务器上部署的 MySQL Docker 容器出现自动停止且删除数据库的情况时,这通常涉及多个潜在原因。 #### 数据持久化设置不当 默认情况下,Docker 容器内的文件系统是非持久化的。这意味着一旦容器被销毁或重新创建,所有更改都会丢失。对于 MySQL 来说,如果没有正确配置卷挂载,则每次重启容器都可能导致数据消失[^1]。 为了防止这种情况发生,在启动 MySQL 容器时应该指定一个外部存储位置来保存实际的数据文件。可以通过 `-v` 参数将主机上的某个目录映射给容器内部 `/var/lib/mysql` 路径作为持久化层: ```bash docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag ``` 这样即使容器关闭也不会影响到已经存放在宿主机硬盘里的资料[^3]。 #### 存储驱动差异引起的问题 不同的操作系统可能采用不同类型的存储引擎,默认情况下某些 Linux 发行版可能会使用 `overlay2` 或者其他的图形覆盖技术;而 Windows 和 Mac OS 则会依赖于特定机制模拟类似的特性。这些底层实现细节有时会造成兼容性方面的小麻烦,尤其是在跨平台迁移过程中更需注意调整相应的参数设定以确保最佳性能表现以及稳定性[^5]。 #### 网络连接不稳定或其他异常情况触发自毁行为 有时候网络波动也可能间接引发此类现象——比如由于心跳检测失败而导致认为节点离线从而采取保护措施终止进程甚至清理残留资源。另外还有可能是应用程序本身存在逻辑漏洞,在遇到意外状况时不当地处理了退出流程进而造成了不必要的破坏动作[^4]。 针对上述提到的各种可能性,建议按照如下方法逐一排查确认具体成因,实施对应的修复策略: - **检查日志信息**:利用 `docker logs CONTAINER_ID` 获取更多关于此次事件前后发生的线索; - **验证环境变量配置无误**:特别是那些涉及到认证凭证、监听端口之类的敏感项务必保证准确性以免造成误解; - **评估当前使用的镜像版本是否稳定可靠**:必要时可以尝试切换至官方推荐标签或是回退至上一代发布版本观察效果变化; - **加强监控力度以便及时响应突发状况**:借助 Prometheus + Grafana 组合或者其他第三方工具建立完善的告警体系能够有效提升运维效率减少损失风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值