Instalar no Linux
Três comandos, do início ao fim.
1. Confira se a máquina está pronta
# O Docker está instalado e você consegue usá-lo sem sudo
docker run hello-world
# O driver NVIDIA está instalado e o Docker consegue ver a GPU
docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi
O segundo comando precisa imprimir sua placa. Se falhar, falta o driver ou o NVIDIA Container Toolkit — essa é a única peça que você precisa instalar sozinho.
2. Escolha uma senha e guarde-a
Isso criptografa seu token salvo. Gere uma e guarde em algum lugar onde você ainda vai tê-la daqui a seis meses.
export AGENT_ENCRYPTION_PASSWORD="$(openssl rand -base64 32)"
echo "$AGENT_ENCRYPTION_PASSWORD" # anote isso agora
3. Rode
docker run -d --name neurogrid-agent \
--gpus all --restart unless-stopped \
--log-driver json-file \
--log-opt max-size=10m \
--log-opt max-file=3 \
--dns 1.1.1.1 --dns 8.8.8.8 \
-v neurogrid-data:/data \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/neurogrid/workloads:/var/lib/neurogrid/workloads \
-e AGENT_ENCRYPTION_PASSWORD="$AGENT_ENCRYPTION_PASSWORD" \
ghcr.io/neurogrid-ai-exchange/neurogrid-agent:latest --token ng_live_xxxxxxxx
Troque ng_live_xxxxxxxx pelo token da consola. Essa é toda a instalação —
a imagem é baixada automaticamente se você não a tiver.
Veja ele subir:
docker logs -f neurogrid-agent
Procure por Bootstrap sent successfully, depois
Heartbeat sent successfully a cada 30 segundos. Sua GPU vira confirmada
na consola nesse exato momento.
Não precisa passar --token de novo. Se você passar uma segunda vez, ele é
ignorado em favor do que já está guardado.
Para que serve cada flag
| Flag | Por que não pode ser removida |
|---|---|
--gpus all | Sem ela não existe nvidia-smi dentro do contêiner, então o agente não consegue medir a VRAM nem dimensionar um modelo |
--dns 1.1.1.1 --dns 8.8.8.8 | O Docker fixa o DNS de um contêiner quando ele é criado e nunca o atualiza. Sem resolvedores que existam em qualquer rede, mover essa máquina entre redes quebra ela silenciosamente — veja Solução de problemas |
-v neurogrid-data:/data | Guarda o token criptografado e sua configuração, então as atualizações mantêm o host registrado |
-v /var/run/docker.sock | Como o agente inicia os contêineres de trabalho. Isso é acesso equivalente a root sobre o host — o contêiner é empacotamento, não uma barreira de segurança |
-v /var/lib/neurogrid/workloads | Espaços de trabalho, no mesmo caminho dos dois lados de propósito: o agente passa esse caminho para o daemon do Docker, que resolve ele no host |
--restart unless-stopped | Sobrevive a uma falha e volta junto com a máquina, mas fica desligado se você o parou de propósito |
Com Docker Compose
Vale a pena depois que você passar dos testes — mantém as flags em um arquivo em vez do histórico do seu shell.
curl -fLO https://raw.githubusercontent.com/NeuroGrid-AI-exchange/neurogrid-agent/main/docker-compose.yml
export AGENT_ENCRYPTION_PASSWORD="$(openssl rand -base64 32)"
docker compose run --rm agent --register-only --token ng_live_xxxxxxxx
docker compose up -d
--register-only encerra assim que o registro der certo, em vez de
continuar para o daemon. Vale a pena como um passo separado porque up -d
roda desacoplado: um registro que falha seria, do contrário, um loop de
reinício com o motivo enterrado nos logs, em vez de uma saída com erro que
você vê na hora.
Onde cada coisa fica
| Caminho | |
|---|---|
| Token e configuração | o volume neurogrid-data, em /data dentro do contêiner |
| Logs | docker logs neurogrid-agent |
| Espaços de trabalho | /var/lib/neurogrid/workloads no host |
Nada é escrito no seu diretório home.