Usando o volume no Dockerfile

Exemplo não utilizando volume

Criação do Dockerfile sem utilizar volume:

/tmp/volume/volume$ ls
/tmp/volume/volume$ touch Dockerfile
/tmp/volume/volume$ vim Dockerfile
/tmp/volume/volume$ cat Dockerfile
FROM ubuntu:22.04
# VOLUME /app
WORKDIR /app

Construção da imagem:

$ docker image build -t ubuntu-volume -f Dockerfile .
[+] Building 12.2s (7/7) FINISHED                       docker:default
 => [internal] load build definition from Dockerfile              0.0s
 => => transferring dockerfile: 82B                               0.0s
 => [internal] load metadata for docker.io/library/ubuntu:22.04   3.3s
 => [auth] library/ubuntu:pull token for registry-1.docker.io     0.0s
 => [internal] load .dockerignore                                 0.0s
 => => transferring context: 2B                                   0.0s
 => [1/2] FROM docker.io/library/ubuntu:22.04@sha256:adbb90115a2  8.6s
 => => resolve docker.io/library/ubuntu:22.04@sha256:adbb90115a2  0.0s
 => => sha256:adbb90115a21969d2fe6fa7f9af4253e16 1.34kB / 1.34kB  0.0s
 => => sha256:075680e983398fda61b1ac59ad733ad81d18df 424B / 424B  0.0s
 => => sha256:53a843653cbcd9e10be207e951d907dc24 2.30kB / 2.30kB  0.0s
 => => sha256:857cc8cb19c0f475256df4b7709003b7 29.54MB / 29.54MB  7.4s
 => => extracting sha256:857cc8cb19c0f475256df4b7709003b77f10121  1.0s
 => [2/2] WORKDIR /app                                            0.1s
 => exporting to image                                            0.0s
 => => exporting layers                                           0.0s
 => => writing image sha256:fb0bf2bef8f7c519918810738a602e83f61b  0.0s
 => => naming to docker.io/library/ubuntu-volume                  0.0s
$ docker image ls ubuntu-volume
REPOSITORY      TAG       IMAGE ID       CREATED          SIZE
ubuntu-volume   latest    fb0bf2bef8f7   20 seconds ago   77.9MB 

Execução do container e criação de arquivo:

Em outro terminal é possível verificar que nenhum volume foi criado:

Saída do container:

Exemplo utilizando volume sem mapeamento

Alteração do Dockerfile para utilizar volume:

Construção da imagem:

Inspeção da imagem criada:

Execução do container:

Criação de arquivo:

Verificação do volume criado:

Saída do container:

Inspeção do volume:

Criação de outro container e arquivo:

Um novo volume foi criado:

Inspeção do novo volume:

Exemplo utilizando volume com mapeamento

Last updated