博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何给容器服务的Docker增加数据盘
阅读量:7099 次
发布时间:2019-06-28

本文共 3611 字,大约阅读时间需要 12 分钟。

hot3.png

如何给容器服务的Docker增加数据盘

更新时间:2018-06-08 19:55:06

  • Docker的镜像存放目录修改与迁移(Ubuntu),

Docker 的数据是通过联合文件系统的方式存储到磁盘上,当需要在机器上运行的容器或者镜像的数量不断增加时,有可能磁盘的大小不再满足需求,这个时候就需要通过增加数据盘的方式,给 Docker的数据目录可存储的空间进行扩容。

Docker 数据目录

Docker默认的容器和镜像数据存储的目录是在 /var/lib/docker 下,可以通过 du 命令查看这个目录目前占用的磁盘的大小,例如:

du -h --max-depth=0 /var/lib/docker7.9G    /var/lib/docker

更换Docker的数据盘

因为很多 Docker 的镜像很大,所以可能几个镜像就占用很大的磁盘空间,从而导致磁盘空间不足,通过为 Docker 的数据目录增加数据盘的方式,可以满足继续增加镜像或容器的需求。

购买ECS数据盘,并挂载到需要扩容的机器上

  1. 登录 ,购买相应配置的云盘。
  2. 单击 ECS实例详情页 > 本实例磁盘 > 挂载磁盘,选择刚才购买的磁盘,并记录挂载点 /dev/xvd* 或者 /dev/vd*。根据 cd 命令确定挂载点,IO 优化实例的挂载点是 /dev/vd*

登录到机器上,对刚才挂载的磁盘进行格式化

  1. 首先在机器上执行 ls -l /dev/xvd* 或者 ls -l /dev/vd* 看到和刚才记录的一致的磁盘ID。
  2. 通过 fdisk 命令对磁盘进行分区,然后使用 mkfs.ext4 格式化磁盘,具体请参见 ,例如:
    root@iZbp16h1ijt5er5wempg4sZ:~# ls -l /dev/vd* brw-rw---- 1 root disk 253,  0 Jan  5 17:44 /dev/vda brw-rw---- 1 root disk 253,  1 Jan  5 17:44 /dev/vda1 brw-rw---- 1 root disk 253, 16 Jan  5 17:55 /dev/vdb root@iZbp16h1ijt5er5wempg4sZ:~# fdisk -S 56 /dev/vdb Welcome to fdisk (util-linux 2.27.1). 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. Created a new DOS disklabel with disk identifier 0x44e128c4. Command (m for help): n Partition type    p   primary (0 primary, 0 extended, 4 free)    e   extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-41943039, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): Created a new partition 1 of type 'Linux' and of size 20 GiB. Command (m for help): wq The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks. root@iZbp16h1ijt5er5wempg4sZ:~# ll /dev/vd* brw-rw---- 1 root disk 253,  0 Jan  5 17:44 /dev/vda brw-rw---- 1 root disk 253,  1 Jan  5 17:44 /dev/vda1 brw-rw---- 1 root disk 253, 16 Jan  5 17:58 /dev/vdb brw-rw---- 1 root disk 253, 17 Jan  5 17:58 /dev/vdb1  ##新增分区 root@iZbp16h1ijt5er5wempg4sZ:~# mkfs.ext4 /dev/vdb1    ##格式化 mke2fs 1.42.13 (17-May-2015) Creating filesystem with 5242624 4k blocks and 1310720 inodes Filesystem UUID: cef1625c-7533-4308-bc44-511580e3edc8 Superblock backups stored on blocks:         32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,         4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done

移动 Docker 的数据到新的磁盘

  1. 首先先停止 Docker daemon,保证移动的时候数据完整,执行 service docker stop 命令停止 Docker daemon。
  2. 先将 Docker 默认数据目录下的数据移动到一个备份的目录,例如 /var/lib/docker_data,执行命令 mv /var/lib/docker /var/lib/docker_data。
  3. 然后把新的格式化好的磁盘挂载到 /var/lib/docker 目录,执行命令 echo "/dev/vdb1 /var/lib/docker ext4 defaults 0 0" >>/etc/fstab && mkdir /var/lib/docker && mount -a。
  4. 把之前备份的 Docker 数据移动到新的磁盘上,执行命令 mv /var/lib/docker_data/* /var/lib/docker/。

启动 Docker daemon,并检查数据位置

  1. 启动 Docker daemon,执行命令 service docker start。
  2. 执行命令 df,可以看到 /var/lib/docker 挂载到了新的磁盘上。
    root@iZbp16h1ijt5er5wempg4sZ:/# df -h Filesystem      Size  Used Avail Use% Mounted on udev            2.0G     0  2.0G   0% /dev tmpfs           396M  7.1M  389M   2% /run /dev/vda1        40G  2.7G   35G   8% / tmpfs           2.0G  476K  2.0G   1% /dev/shm tmpfs           5.0M     0  5.0M   0% /run/lock tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup tmpfs           396M     0  396M   0% /run/user/0 /dev/vdb1        20G  2.1G   17G  12% /var/lib/docker  ##该目录挂在到新的磁盘上 ....
  3. 执行命令 docker ps,查看容器是否丢失,根据需要重启相关容器,如没有设置 restart:always 标签的容器。

转载于:https://my.oschina.net/u/2306127/blog/1858005

你可能感兴趣的文章
Debian9 安装后的配置笔记
查看>>
JSON文件存入MySQL数据库
查看>>
Lecture 2
查看>>
CSS overscroll-behavior
查看>>
【枚举+数学】【HDU1271】整数对 难度:五颗星
查看>>
[20171113]修改表结构删除列相关问题3.txt
查看>>
面向对象聊天机器人
查看>>
课后笔记--html
查看>>
使用dll查看器dll文件中的内容
查看>>
iOS中系统自带正则表达式的应用
查看>>
Quartz 2D编程指南(7) - 阴影(Shadows)
查看>>
CSS实现vip闪光特效
查看>>
JQuery中 JSON 兼容性问题(针对ie8)
查看>>
openstack知识---hypervisor
查看>>
1.1 python 安装(Windows)
查看>>
redis分布式锁的具体应用
查看>>
四中居中方法
查看>>
23. Merge K Sorted Lists (Java, 归并排序的思路)
查看>>
转载:JAR包介绍大全用途作用详解JAVA
查看>>
java 操作符(翻译自Java Tutorials)
查看>>