Oracle VM VirtualBox启动docker 移动目录+扩容

第一步先实现目录的移动:
找到默认安装的.docker,然后剪切到你需要移动到的盘:
执行以下命令:目的是把默认的.docker 指向到 D盘下,这样访问C盘.docker的所有都会去访问D盘下的目录。

mklink  /j .docker D:\docker\.docker

第二步进行目录的扩容:
1.先把原来的文件备份一份,然后在虚拟机里面删除这个盘,不然后面会有uuid使用的问题。
2.执行如下命令:

1,VBoxManage clonehd "C:\Users\Administrator\.docker\machine\machines\default\disk.vmdk" "C:\Users\Administrator\.docker\machine\machines\default\disk.vdi" --format vdi
这个命令使用 VBoxManage(VirtualBox 的命令行工具)拷贝或克隆一个现有的虚拟硬盘文件 `VirtualDisk.vmdk` ,并且将其转换为 VDI 格式,输出为新的文件 `disk.vdi` 。VDI 是 VirtualBox 虚拟磁盘映像的默认格式,它对动态扩展支持更好。

2,VBoxManage modifyhd "C:\Users\Administrator\.docker\machine\machines\default\disk.vdi" --resize 71680
这个命令是用来扩展 `disk.vdi` 文件的大小到 61440MB (即 60GB)`modifyhd` 选项可以对现有的虚拟硬盘进行修改,而 `--resize` 参数则指定了新的大小。这一步是在扩展已经转换格式的 `disk.vdi` 文件的容量,以便提供更多的存储空间。

3,VBoxManage clonehd "C:\Users\Administrator\.docker\machine\machines\default\disk.vdi" "C:\Users\Administrator\.docker\machine\machines\disk.vmdk" --format vmdk
这个命令再次使用 VBoxManage 工具来克隆或拷贝 disk.vdi 文件,但这次是将其转换回 VMDK 格式,并保存为新的文件 disk.vmdk。这一步实际上是把已扩展容量的虚拟硬盘转换回了 Docker Machine 默认使用的 VMDK 格式。

一般情况下会出现100%就表示成功了。
我这边报错:

C:\Users\Administrator>VBoxManage clonehd "C:\Users\Administrator\.docker\machine\machines\default\disk.vdi" "C:\Users\Administrator\.docker\machine\machines\default\disk.vmdk" --format vmdk
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...
Progress state: E_INVALIDARG
VBoxManage.exe: error: Failed to clone medium
VBoxManage.exe: error: Cannot register the hard disk 'C:\Users\Administrator\.docker\machine\machines\default\disk.vmdk' {7b2eaedf-baae-4d64-9fe5-2b10d49f325d} because a hard disk 'C:\Users\Administ
rator\.docker\machine\machines\default\disk.vmdk' with UUID {733746f8-91da-4d98-9ec9-3a8526d1a1bd} already exists
VBoxManage.exe: error: Details: code E_INVALIDARG (0x80070057), component VirtualBoxWrap, interface IVirtualBox
VBoxManage.exe: error: Context: "enum RTEXITCODE __cdecl handleCloneMedium(struct HandlerArg *)" at line 990 of file VBoxManageDisk.cpp

这个我第三步重新换了个目录生成,然后再移动过去就好了。
在这里插入图片描述
在这里插入图片描述
接下来重启虚拟机,可以看到大小已经改了,但是还需要分区才可以用所有空间,不然还是默认的。
连接虚拟机:

第一步:docker-machine ssh default

C:\Users\Administrator>docker-machine ssh default
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)           www.tinycorelinux.net

[1;32mdocker@default[0m:[1;34m~[0m$ df -h
Filesystem                Size      Used Available Use% Mounted on
tmpfs                   886.9M    274.8M    612.0M  31% /
tmpfs                   492.7M         0    492.7M   0% /dev/shm
/dev/sda1                17.8G     45.2M     16.9G   0% /mnt/sda1
cgroup                  492.7M         0    492.7M   0% /sys/fs/cgroup
/c/Users                 99.7G     46.5G     53.1G  47% /c/Users
/dev/sda1                17.8G     45.2M     16.9G   0% /mnt/sda1/var/lib/docker



第二步:fdisk /dev/sda
fdisk 是用于查看和编辑磁盘分区表的命令行工具,它是 Linux 和一些类 Unix 操作系统中非常常用的磁盘工具。使用 fdisk,你可以创建、删除、重组、以及管理磁盘分区。
当你执行 fdisk /dev/sda 并看到 Command (m for help): 提示时,意味着你已经进入了 fdisk 的命令模式,它正在等待进一步的操作指令。此时你可以输入不同的命令来进行磁盘分区的操作,常见的命令包括:
m:显示所有可用命令的帮助信息。
p:列出所选磁盘的分区表。
n:创建一个新的分区。
d:删除一个现有分区。
t:改变一个分区的系统 id。
w:写入表到磁盘并退出。
q:不保存更改并退出。

1;32mdocker@default[0m:[1;34m~[0m$ fdisk /dev/sda
[32m
elcome to fdisk (util-linux 2.32.1).
[0mChanges will remain in memory only, until you decide to write them.
e careful before using the write command.

[31mGPT PMBR size mismatch (40959999 != 146800639) will be corrected by write.[0m
[31mThe backup GPT table is not on the end of the device. This problem will be corrected by w

第三步输入P 查看
ommand (m for help): p
[1m
isk /dev/sda: 70 GiB, 75161927680 bytes, 146800640 sectors
[0mUnits: sectors of 1 * 512 = 512 bytes
ector size (logical/physical): 512 bytes / 512 bytes
/O size (minimum/optimal): 512 bytes / 512 bytes
isklabel type: gpt
isk identifier: 7CD7F400-9F1A-F64C-9B26-43D800BC8774

[1mDevice[0m     [1m  Start[0m [1m     End[0m [1m Sectors[0m [1m Size[0m [1mType[0
dev/sda1  2050048 40959966 38909919 18.6G Linux filesystem
dev/sda2     2048  2050047  2048000 1000M Linux swap

artition table entries are not in disk order.

ommand (m for help):

第四步输入D:删除盘
Command (m for help): d
Partition number (1,2, default 2): 1 删除选择1是删除第一个盘/dev/sda1
 
Partition 1 has been deleted

第五步输入n: 创建新分区
Command (m for help): n
Partition number (1,3-128, default 1): 默认回车
First sector (2050048-209715166, default 2050048): 默认回车
Last sector, +sectors or +size{K,M,G,T,P} (2050048-209715166, default 209715166): 默认回车
Created a new partition 1 of type 'Linux filesystem' and of size 99 GiB.
Partition #1 contains a ext4 signature.
 
Do you want to remove the signature? [Y]es/[N]o: n 选择n,Y的话 fdisk 会删除旧的 ext4 签名
(ext4 文件系统的签名可以帮助操作系统识别文件系统的类型和版本,从而正确地挂载和操作文件系统。)
然后输入w:看到如下就说明成功了
Command (m for help): w

The partition table has been altered.
[31mFailed to update system information about partition 1: Permission denied
[0m
The kernel still uses the old partitions. The new table will be used at the next reboot.
Syncing disks.


第六步:重启
 exit
   docker-machine restart default


C:\Users\Administrator> docker-machine restart default
Restarting "default"...
(default) Check network to re-create if needed...
(default) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar.
(default) Waiting for an IP...
Waiting for SSH to be available...
Detecting the provisioner...
Restarted machines may have new IP addresses. You may need to re-run the `docker-machine env` command.

第七步:连接虚拟机
    docker-machine ssh default

第八步:执行    sudo resize2fs /dev/sda1

:\Users\Administrator>    docker-machine ssh default
  ( '>')
 /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
(/-_--_-\)           www.tinycorelinux.net

[1;32mdocker@default[0m:[1;34m~[0m$     sudo resize2fs /dev/sda1
esize2fs 1.44.4 (18-Aug-2018)
ilesystem at /dev/sda1 is mounted on /mnt/sda1; on-line resizing required
ld_desc_blocks = 3, new_desc_blocks = 9
he filesystem on /dev/sda1 is now 18093819 (4k) blocks long.

[1;32mdocker@default[0m:[1;34m~[0m$

输出显示 "The filesystem on /dev/sda1 is now 18093819 (4k) blocks long."。这表明你的 /dev/sda1 文件系统已经成功在线扩展到新分区的大小了

df -h再查看下


[1;32mdocker@default[0m:[1;34m~[0m$ df -h
Filesystem                Size      Used Available Use% Mounted on
tmpfs                   886.9M    274.8M    612.0M  31% /
tmpfs                   492.7M         0    492.7M   0% /dev/shm
/dev/sda1                66.7G     52.9M     63.7G   0% /mnt/sda1
cgroup                  492.7M         0    492.7M   0% /sys/fs/cgroup
/c/Users                 99.7G     46.5G     53.1G  47% /c/Users
/dev/sda1                66.7G     52.9M     63.7G   0% /mnt/sda1/var/lib/docker
[1;32mdocker@default[0m:[1;34m~[0m$
/dev/sda1 分区的大小已经扩充到了约67GB,其中可用空间为63.7GB。这表明你已经成功地扩充了你的Docker Machine的存储空间

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值