Os volumes do Docker devem estar no servidor local?

1

Estou fazendo o docking de um aplicativo de nó existente. O aplicativo permite que os usuários façam upload de imagens do usuário. Estou pensando em criar uma imagem de volume do docker e compartilhá-la entre os contêineres em execução para que todos possam escrever e ler essas imagens.

Perguntas:

  • Posso implantar a imagem do docker na Amazon e esperar que todas as instâncias acessem-na?
  • Poderia ter a imagem em execução no "provedor de nuvem A" e permitir que outras instâncias de janela de encaixe acessem a partir do "provedor de nuvem B"?
por Merc 02.01.2018 / 02:11

2 respostas

1

Por padrão, os volumes do docker são locais para o host do docker em que o contêiner está em execução (conforme sugerido pelo nome do driver padrão "local"). Para ter um volume docker acessível em vários hosts docker, você precisará apontar para o armazenamento externo. A maneira mais comum de fazer isso é usando um servidor NFS:

  # create a reusable volume
  $ docker volume create --driver local \
      --opt type=nfs \
      --opt o=addr=192.168.1.1,rw \
      --opt device=:/path/to/dir \
      foo

  # or from the docker run command
  $ docker run -it --rm \
    --mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,volume-opt=o=addr=192.168.1.1,volume-opt=device=:/host/path \
    foo

Você precisará ajustar o IP e o caminho e os nomes acima para corresponder ao seu próprio ambiente.

Para acessar o volume em várias nuvens, você precisará apontar para um armazenamento externo acessível a partir de várias nuvens.

    
por 02.01.2018 / 17:36
0

Can I deploy the docker image on Amazon and expect all of the instances to access it?

Isso é possível, mas não vem por padrão, você precisa configurá-lo.

Se você deseja compartilhar arquivos arbitrários, é necessário configurar um sistema de arquivos em cluster. Provavelmente, uma das maneiras mais fáceis de fazer isso na infraestrutura da Amazon é configurar driver de armazenamento suportado pelo S3 .

Se você quiser apenas compartilhar imagens do docker, poderá simplesmente configurar o seu próprio registro do docker particular .

Could I potentially have the image running on "cloud provider A", and allow other docker instances to access it from "cloud provider B"?

Sim, embora você precise descobrir o aspecto de segurança se não quiser que as imagens sejam públicas. Você precisa configurar a autenticação para o registro do docker. Como configurar essas configurações de segurança são discutidas no manual do servidor de registro .

    
por 02.01.2018 / 04:20