Docker: Não utilize bind mounts do Docker

Esta documentação faz parte do guia Volumes. Consulte o guia completo aqui: Como persistir os dados dos seus containers com volumes Docker.

👋 Bem-vindo à documentação da Stackhero!

A Stackhero oferece uma solução Docker cloud CaaS (Containers as a Service) pronta a usar que proporciona uma série de benefícios, incluindo:

  • Implemente facilmente os seus containers em produção com apenas um docker-compose up.
  • Nome de domínio personalizável seguro com HTTPS (por exemplo, https://api.sua-empresa.com, https://www.sua-empresa.com, https://backoffice.sua-empresa.com).
  • Desempenho ótimo e segurança robusta alimentados por uma VM privada e dedicada.
  • Atualizações sem esforço com apenas um clique.

Poupe tempo e simplifique a sua vida: são necessários apenas 5 minutos para experimentar a solução de hospedagem cloud Docker CaaS da Stackhero e implementar os seus containers em produção!

Não utilize bind mounts no Stackhero. Opte sempre por volumes Docker para evitar a perda de dados.

Os bind mounts envolvem ligar um diretório da VM host do Stackhero a um container. No entanto, se depender de bind mounts, atualizar a sua instância Stackhero for Docker resultará na perda de todos os dados armazenados desta forma.

Os bind mounts são geralmente especificados no comando docker run com uma sintaxe como -v /meuDiretório:/mnt (note o / inicial). Nos ficheiros Docker Compose, aparecem como volumes: /meuDiretório:/mnt. Proíba estas configurações ou perderá os seus dados.

Em vez disso, utilize volumes Docker, que são geridos pelo Docker e não referenciam caminhos absolutos.

Para resumir:

Abordagem incorreta:

docker run -it -v /meuDiretório:/mnt alpine

Abordagem correta:

docker volume create meuVolume
docker run -it -v meuVolume:/mnt alpine

Ao trabalhar com ficheiros Docker Compose:

Configuração incorreta:

services:
  meuServiço:
    image: alpine
    volumes:
      - /meuDiretório:/mnt

Configuração correta:

services:
  meuServiço:
    image: alpine
    volumes:
      - meuVolume:/mnt

volumes:
  meuVolume:
    name: meuVolume