Como aumentar o tamanho do dispositivo de base por contêiner?

0

Durante a criação de um contêiner (o mesmo acontece quando eu executo os mesmos comandos dentro de um contêiner), me deparo com um erro reclamando sobre "não há mais espaço no dispositivo". Eu verifiquei com df e confirmei que tenho espaço suficiente. Meu SO é Arch Linux, aqui está a saída de docker info :

[mark@arch stackage-head]$ docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 123
Server Version: 18.03.0-ce
Storage Driver: devicemapper
 Pool Name: docker-8:3-5898903-pool
 Pool Blocksize: 65.54kB
 Base Device Size: 10.74GB
 Backing Filesystem: xfs
 Udev Sync Supported: true
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Data Space Used: 45.27GB
 Data Space Total: 107.4GB
 Data Space Available: 56.87GB
 Metadata Space Used: 36.01MB
 Metadata Space Total: 2.147GB
 Metadata Space Available: 2.111GB
 Thin Pool Minimum Free Space: 10.74GB
 Deferred Removal Enabled: true
 Deferred Deletion Enabled: true
 Deferred Deleted Device Count: 0
 Library Version: 1.02.146 (2017-12-18)
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: cfd04396dc68220d1cecbe686a6cc3aa5ce3667c
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.15.11-1-ARCH
Operating System: Arch Linux
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.58GiB
Name: arch
ID: VKYM:3FM2:MAE7:SZPY:E4CR:6U6K:Z5SG:5A66:NEJT:K4MD:LN57:FBXM
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: mrkkrp
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use.
         Use '--storage-opt dm.thinpooldev' to specify a custom block storage device.

Eu tentei usar a opção --storage-opt size=20G , mas ela falha assim:

[mark@arch stackage-head]$ docker run -it --storage-opt size=20G snoyberg/stackage:nightly bash
docker: Error response from daemon: Failed to grow rootfs:exit status 1:xfs_growfs: /dev/mapper/docker-8:3-5898903-3456c9ee1d5a83fc705125974101c89015562d0cc4c00bc5e1c97bd560dded6a-init is not a mounted XFS filesystem.
See 'docker run --help'.

De acordo com os documentos , isso deve trabalho.

Eu verifiquei o wiki do Arch Linux, que tem uma seção relevante:

No entanto, não tenho certeza de como isso se aplica a mim porque não tenho o sistema de arquivos XFS montado em /etc/fstab , pois eu entendo que devicemapper os cria conforme necessário para os contêineres.

Um contêiner não pode crescer mais do que esse "tamanho de dispositivo base", então tentei aumentá-lo de várias maneiras.

  • Com docker daemon --storage-opt dm.basesize=20G de acordo com esta postagem antiga . Infelizmente, --storage-opt é reportado como um sinalizador desconhecido.

  • Passando --storage-opt dm.basesize=20G para docker run , mas desta vez dm.basesize é relatado como uma opção desconhecida.

por Mark 02.04.2018 / 11:55

0 respostas