Files
guara/docs/pt-BR/docker.md
T
Lucas RayanandClaude Sonnet 5.5 f00ab2102b Docker: imagem do terminal e documentação de uso
Dockerfile em dois estágios (compila guara-cli e copia o binário para
debian-slim com smartmontools). Serve para hospedeiros Linux, servidores
sem desktop e arquivos de imagem forense. A interface gráfica fica de
fora de propósito: o guara ui só aceita 127.0.0.1.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RRZm8uTVN3WLTwcbrDQAUM
2026-10-20 09:56:04 -03:00

2.5 KiB

Usando o Guará com Docker

English · Português

A imagem traz o terminal guara e o smartctl. Ela serve em três casos:

  1. Servidor ou NAS Linux sem desktop, com o disco danificado conectado.
  2. Arquivos de imagem forense (.img, E01, AFF4) em qualquer sistema com Docker, porque não precisa acessar dispositivo.
  3. Ambiente reproduzível para scripts e CI.

Não é o caminho recomendado para a maioria das pessoas. No desktop, use os pacotes de Releases.

Limites

  • Dispositivos brutos só funcionam em hospedeiros Linux. No Windows e no macOS o Docker roda dentro de uma máquina virtual e não repassa discos físicos. Use um arquivo de imagem.
  • A interface gráfica não é servida pelo container. O guara ui escuta só em 127.0.0.1 e só aceita esse Host, de propósito; abrir isso para fora enfraqueceria a proteção, então não faz parte da imagem.
  • Arquivos gravados numa pasta montada pertencem ao root, a menos que você passe --user (possível ao trabalhar com arquivos de imagem).

Construir

docker build -t guara .

Arquivos de imagem (qualquer sistema)

Monte a pasta da imagem somente para leitura e outra pasta para os resultados:

docker run --rm \
  -v "$PWD/imagens:/imagens:ro" \
  -v "$PWD/saida:/saida" \
  --user "$(id -u):$(id -g)" \
  guara scan /imagens/disco.img --session /saida/s.json --list

docker run --rm \
  -v "$PWD/imagens:/imagens:ro" -v "$PWD/saida:/saida" \
  --user "$(id -u):$(id -g)" \
  guara recover /saida/s.json /saida/recuperados

Disco físico (hospedeiro Linux)

Passe o dispositivo somente para leitura com a opção :r. O Docker passa a bloquear escritas nele no nível do kernel, além de o Guará nunca gravar na origem:

docker run --rm \
  --device=/dev/sdb:/dev/sdb:r \
  -v /mnt/outro-disco/saida:/saida \
  guara scan /dev/sdb --session /saida/s.json --list
  • O destino precisa estar em outro disco que não seja o /dev/sdb.
  • Ler dispositivo bruto exige root dentro do container, então não use --user aqui.
  • Para ler o SMART, em alguns sistemas --device não basta; o complemento usual é --cap-add=SYS_RAWIO.
  • Evite --privileged: ele dá ao container acesso a todos os dispositivos.

Outros comandos

Tudo da referência do terminal funciona do mesmo jeito, por exemplo:

docker run --rm --device=/dev/sdb:/dev/sdb:r guara devices
docker run --rm --device=/dev/sdb:/dev/sdb:r guara health /dev/sdb