首页 > 解决方案 > 如何在 Ubuntu 中增加 docker 磁盘映像大小

问题描述

我正在尝试增加 ubuntu 上的 docker 图像大小。当我做 docker info 我得到以下信息

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 17.09.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0
runc version: 3f2f8b84a77f73d38244dd690525642a72156c64
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-87-generic
Operating System: Ubuntu 16.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.67GiB
Name: no1010042033112.corp.adobe.com
ID: PYZE:KYTG:DXED:QI37:43ZM:56BB:TLM6:X2OJ:WDPA:35UP:Z4CU:DSNC
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

如您所见,总内存为 Total Memory: 15.67GiB。我找不到在 Ubuntu 上执行此操作的方法。我尝试了以下方法

1) sudo dockerd --storage-opt dm.basesize=100G 2) 在 /etc/default/docker.

但这些都没有帮助。此选项在 Windows 的 Docker 配置中很容易获得。但是如何从 ubuntu 终端执行此操作

标签: dockerubuntu-16.04

解决方案


Docker,在 Linux 上,带有overlay2存储驱动程序,使用主机系统的所有磁盘(和内存)。没有办法让它使用更少的磁盘(不重新分区你的主系统磁盘),也没有办法给它更多(不添加新硬件)。

Docker for Mac、Linux 风格的 Windows Docker 和 Docker Machine 都通过启动运行最小 Linux 操作系统的虚拟机来工作。该 VM 具有特定的磁盘和内存分配,并且有 UI 控制,但这是因为容器在不同的操作系统上运行,并且需要一个实际的虚拟化层。

在 Linux 上,Docker 还支持多个存储驱动程序。这些需要不同数量的 Linux 内核支持。Docker 的早期版本使用称为devicemapper的东西,它通过在(通常)固定大小的文件中分配空间来工作,然后dm.basesize您给出的选项很重要(“dm”代表“devicemapper”)。当前版本的 Linux 上的当前版本的 Docker 使用不同的驱动程序,称为overlay2,它只是将图像和容器内容存储在普通目录中。您仍然需要内核支持,但没有保留或有限的磁盘空间。这也是为什么docker info输出中唯一的大小数字是memory,这是一种不同的资源。


推荐阅读