项目场景:

将Docker整体迁移至新磁盘


问题描述:

服务器运维小伙伴今天通知我说服务器磁盘快满了, 我上去df -h一下发现

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs         16G     0   16G   0% /dev
tmpfs            16G     0   16G   0% /dev/shm
tmpfs            16G  2.9M   16G   1% /run
tmpfs            16G     0   16G   0% /sys/fs/cgroup
/dev/vda1        40G   37G  618M  99% /
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/874d6847419d1a2d219619b688581d9dff86d12a3846e7f8565ad736535e10c5/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/002aeb4ee79b35db4af7af2674bae1403a01978403ed4b1c911c7faf0be69c0c/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/625a48a7d031e224faf24168ec0a85db6a71d9ca88a967d8a9c1be4bf1058ee1/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/1f65639248c9296ced9651cccf4f6722db4d8c4e11dddaa6c90dbb417e1f2577/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/196d72245989acd46cf49b6f297f8b08a6e3a02bcd284abfff42daf5971ad419/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/81664287228bbb9c3bf62b9d4123226e57575f63f7354ee6466aaf48638eed64/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/3d761039a2370da18639e3fe756a4f4f335293c897a1a1096a0c8d840a171e87/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/134c87c2ed413b2ab200d9953a0e9fc7b89b4eb7482355beb905bd40edf405d8/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/892b9b187cfdb3a03288aeb1e88e2791604111b22e8d2ae7031720f3692fc77b/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/3d911badbb7a06ea4697cf974c7cb177e1e1203c354353300b9bf879ad9b1e88/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/c58232a29e6e807f294bcd5ee3cdb55157cdc657f587c1140e86a1f2ae17e6a1/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/b99bcf7bdd2961d036b2384b76038fca61dccb489248a4b8b20d737707f3905f/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/7a86b18097c6cb6ff5a48ac1653877af8604fb5c1ee3d26aa4cc8e3371a31a30/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/3f602c9294c2691164b37bb98ba765a6e2af911e28bc6609e69c13e8df472413/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/ab613c0f0f70c3b6838e1683004db33d8df826eb8a2c6f9583eb561e84ac1b06/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/f526b92fe3212385ea89d00c5a75ade50c8134aedd2c27c39e1261c437bea72f/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/fa32d3d9a6570792d25472d65670ea1ba56ce87307b69cd27a0436212c0bdb20/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/d6073cd627ab4b452e36824acec7544ad5d87fad1fca0fd36dd5a561f0bddc9a/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/59dec3519a2c47630c5a84bab2521d041001b404c66cdf40a3e0ca6262fdaacd/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/9f3614bd56c60dae18d5957230aaba85cbae11f133bc0f6988cb78bb554a50b6/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/1a2683fddf524a8cca26f1ef0aceedead8765a6d63fd408c3cd8730e2d94daef/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/e41dd9ee1f9d4bbbd7399afa028dfd77d98fb524396ba854692a30a11f0be16f/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/e80ba6f30f52913ddcb094676c615e276116fa9405ee2602194a972a9ba99e71/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/4cfeac7e4b74299cc0d4f3195f390516270a2a71c484ff6246ee96f9aea114a7/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/a05c836e9ca3525a4b6ce2220c593e11b096eeecf34428e7af3b78dfba144a54/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/53277a7e1b586a1aa26fc8530cd4a06aa498e9829bb7bb838021c6c4bcd3246a/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/2db7ee3c090f746de4d4ae22bbea4219c8e90d0bf608e1204bda8c7fe2d6c8e9/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/e22cc0b13f096688a42d05aa64792b301331147dfd14b7f0191773fc1867b526/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/0d69b1e589cb0f94aa2d527c55fc6f83ef66bfde0424f5fce8fad73df290e994/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/895dfbbf7556d98e4f9cfd40bc8909c41c13823049d91750bac43dbebe6f3046/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/237530eee48a542d64ee9cf14afea8061c4f152314f9fa1ae67c88cfaf1d0674/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/7a1554ffb2848259f202d016fac022259a0b76de64e69fa6064a539d997512a0/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/6a64c2b345ca36508c10806a703d4ca4b5017e58463a1df8991910881ac4c668/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/9674a2d533ae579a11fefabc024b34a4c1c22723476b68da96cbcbcd64d95e5d/merged
overlay          40G   37G  618M  99% /var/lib/docker/overlay2/064ed4015c70aff05563512c512b939ed222ed037819b7a0ce607c88c00070a4/merged
tmpfs           3.2G     0  3.2G   0% /run/user/0

好嘛, 直接干到99了, 我问了运维小伙伴能不能扩容后, 对方直接说本来就有第二个磁盘, 是我没挂载…

由于这台服务器只运行Docker服务, 所以把Docker迁移到新磁盘就能解决问题


原因分析:


解决方案:

运行环境

CentOS: 7.9.2009
Docker: 20.10.17

【Docker运维】磁盘满了如何迁移Docker到新磁盘

挂载磁盘

查看现有磁盘

fdisk -l
Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a57dfDevice Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048   104857566    52427759+  83  LinuxDisk /dev/vdb: 322.1 GB, 322122547200 bytes, 629145600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

磁盘分区

fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xa3561fb4.Command (m for help): n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-629145599, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-629145599, default 629145599):
Using default value 629145599
Partition 1 of type Linux and of size 300 GiB is setCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.

格式化为ext4

mkfs.ext4 /dev/vdb

将磁盘挂载到指定目录

mkdir /data
mount -t ext4 /dev/vdb /data

开机自动挂载目录

blkid |grep /dev/vdb/dev/vdb: UUID="46a7455b-2344-43aa-bfa7-b3ef3c800600" TYPE="ext4"
vim /etc/fstab# 追加
UUID=46a7455b-2344-43aa-bfa7-b3ef3c800600 /dev/vdb                ext4    defaults        0 0

迁移Docker

暂停Docker

systemctl stop docker

迁移数据

mv /var/lib/docker /data/

修改配置文件中的目录地址

vim /etc/docker/daemon.json# 添加
{"data-root": "/data/docker",...
}

加载配置并重启Docker

systemctl daemon-reload
systemctl start docker

查看是否生效

docker info

参考:
https://www.chenshaowen.com/blog/how-to-migrate-docker-storage-to-new-disk.html
https://icode.best/i/36183140598208

【Docker 运维】Docker迁移至新磁盘相关推荐

  1. 新IT运维时代 | Docker运维之最佳实践-上篇

    容器技术的发展可以分为两个阶段,第一个阶段聚焦在IaaS层,仅仅把容器当做更轻量级虚拟机来使用,解决了应用运行时进程级资源隔离的问题:随着Docker的出现,容器虚拟化才有了统一的平台,由此容器技术发 ...

  2. Docker运维必备:监控宝Docker监控试用手记

    本文由肖远昊深度实践docker监控的报告   非常荣幸得到监控宝的邀请,试用了他们最近推出的新产品--Docker监控. 9月7日,中国APM厂商云智慧CloudWise正式发布上线Docker监控 ...

  3. 新IT运维时代 | Docker运维之最佳实践-下篇

    2019独角兽企业重金招聘Python工程师标准>>> 上篇针对操作系统.主机配置.容器镜像.容器运行时四大方面分享一些Docker的运维经验,本篇将着重在Docker Daemon ...

  4. Docker容器虚拟化技术---Docker运维管理(Docker Compose)4

    Docker容器虚拟化技术-Docker运维管理(Docker Compose)4 Docker Compose 通过前面的讲解我们知道使用一个Dockerfile模板文件,可以很方便地定义一个单独的 ...

  5. Docker容器虚拟化技术---Docker运维管理(Swarm集群管理)3

    Docker容器虚拟化技术-Docker运维管理(Swarm集群管理)3 Swarm集群管理 docker swarm是docker官方提供的一套容器编排系统,是Docker公司推出的官方容器集群平台 ...

  6. 2020PAKDD 阿里巴巴智能运维算法大赛TOP20 ——磁盘故障预测问题比赛思路、难点与问题总结

    2020PAKDD 阿里巴巴智能运维算法大赛_磁盘故障预测问题比赛思路.难点与问题总结 这次PAKDD比赛很高兴在钉钉群见到了桑榆.hyd.缺佬.杰少等等诸多大神,也很感谢一路相伴的两位队友,最后也很 ...

  7. 自动化运维-----Docker容器

    文章目录 一.Docker简介 1.什么是虚拟化 2. 什么是Docker 3.为什么选择Docker?(*敲黑板) 4.容器与虚拟化的比较 5.Docker组件 (1)Docker服务器与客户端 ( ...

  8. Docker运维常用命令

    Docker 问题排查和监控 docker ps -a docker ps -a pid### 获取容器的元数据 docker inspect ## docker stats –no-stream## ...

  9. JAVA开发与运维(docker运维常规操作)

    使用docker来安装软件步骤. 1.先装好docker环境. 1.4 docker环境及部署 1.4.1 版本 Client: Docker Engine – Community version: ...

最新文章

  1. 本地如何使用phpstudy环境搭建多站点
  2. Tensor2Tensor 踩坑记录
  3. AM,DSB,SSB,FM信号调制matlab
  4. HALCON示例程序measure_screw.hdev螺纹尺寸测量
  5. php mysql 单例模式_PHP基于单例模式实现的mysql类
  6. call to member function bind_param() on boolean...........
  7. 同林多域共用一台Exchange
  8. VB快速读取 TextBox 第 N 行的资料
  9. C#利用Process关闭所有的IE窗口
  10. openstack热添加磁盘
  11. 数字密码锁设计(利用数字逻辑电路的电子密码锁)
  12. 动态拼接LINQ查询条件
  13. python 打开pdf文件_Python读取PDF文件--pdfminer
  14. 【为您的 Android 应用添加图片】
  15. 左声道,右声道和立体声
  16. 扩展正则表达式之加号
  17. Binder源码阅读指南之java层,作为Android开发程序员
  18. Java基础(一) 八大基本数据类型
  19. IEEE文章免费下载方法
  20. Python 模块探索 —— pretty_errors

热门文章

  1. 投资理财-小新分红的意义
  2. xss往html插入js代码,XSS代码触发条件,插入XSS代码的常用方法
  3. python基本工资的调整方案_7-45 jmu-python-涨工资 (10 分)
  4. table实现上移下移的功能
  5. java中Pair怎么用
  6. STM32开发板动态二维码显示
  7. Android 三国杀 百度账号,三国杀移动版多酷账号版本下载-三国杀移动版多酷版v3.9.2 安卓版-腾牛安卓网...
  8. WMS智能仓储管理系统源码 SpringMVC物流仓库管理系统源码
  9. web前端高级React - React从入门到进阶之初识React
  10. 利用itext复制pdf模板并插入图片