Montar um novo volume em uma instância do docker

2

Eu tenho um site em execução em uma instância do docker. O site tem uma pasta de documentos que precisa de mais armazenamento. Então, criei um novo volume na AWS. Eu posso ver isso do host com lsblk , assim:

$ sudo lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk
└─xvda1 202:1    0   8G  0 part /
xvdf    202:80   0  20G  0 disk

Dentro da estrutura do site, dentro do contêiner docker, gostaria de montar o disco para:

/var/www/localhost/htdocs/sites/default/documents/

Normalmente, usaria apenas o seguinte:

sudo mount /dev/xvdf /var/www/localhost/htdocs/sites/default/documents/

Mas como está em um contêiner docker, estou um pouco confuso sobre como conectá-lo. Como posso montar a unidade no diretório fornecido?

O Docker é bastante novo para mim. Eu mal ouvi falar disso até algumas semanas atrás. Eu tenho controle para sh no contêiner e também reinicio.

    
por Jahmic 16.08.2018 / 11:16

3 respostas

2

Finalmente, descobri.

Primeiro, tive que rastrear como a instância foi iniciada em primeiro lugar. Por este comando:

./docker-compose up -d --build

Nesse mesmo diretório, havia um arquivo docker-compose.yml, então adicionei a seguinte linha, no serviço principal (e não no nível superior):

- /mnt:/var/www/localhost/htdocs/sites/default/documents

Parou a instância Montado o drive:

sudo mount /dev/xvdf /mnt

Reiniciou o contêiner:

./docker-compose up -d --build

enviado para a instância do docker e o volume verificado montado com:

df
    
por 21.08.2018 / 14:15
3

Primeiro, monte o dispositivo no diretório:

sudo mount /dev/xvdf /mnt

Em seguida, você deve iniciar o contêiner com o parâmetro, que conecta seu volume (diretório) ao diretório do contêiner:

docker run -d \
 --name devtest \
 -v /mnt:/var/www/localhost/htdocs/sites/default/documents \
 nginx:latest

link

Ou com o docker-compose.yml:

devtest:
  image: nginx:latest
  volumes:
    - /mnt:/var/www/localhost/htdocs/sites/default/documents
    
por 16.08.2018 / 14:19
2

Dê uma olhada nesta questão para obter mais informações sobre os diferentes tipos de montagem no Docker: Qual é a diferença entre criar um volume ou uma montagem em contêineres docker?

Você precisa colocar o volume primeiro em uma pasta local no servidor 'host' e montá-lo no contêiner docker.

    
por 16.08.2018 / 12:11