dockview
TUI visual para Docker (Textual) com abas para todos os tipos de recurso.
5 testes · 5 passou · 0 falhou · 0 skip
- test_whale_art0.00s
- test_palette_has_blue0.00s
- test_banner0.00s
- test_docker_error_is_runtime0.00s
- test_cli_importable0.00s
Entrypoints (CLI)
dockview
Módulos e funções principais
src/dockview/__init__.py
main()
src/dockview/cli.py
main()
src/dockview/dockerlib.py
client()— Retorna um cliente Docker, criado uma vez (lazy).list_containers()— Lista containers como dicts enxutos pra tabela.list_images()start()stop()restart()remove_container()remove_image()
src/dockview/labs.py
discover()— Lista os labs (pastas com docker-compose.yml) em ~/labs.status()— Preenche running/total de cada lab (consulta Docker uma vez).up()— Sobe o lab (docker compose up -d). Retorna saída resumida.down()— Derruba o lab (docker compose down). Retorna saída resumida.
src/dockview/theme.py
whale_lines()banner_title()
src/dockview/tui.py
run()
Estrutura de arquivos
- LICENSE
- README.md
- install.sh
- pyproject.toml
- src/dockview/__init__.py
- src/dockview/cli.py
- src/dockview/dockerlib.py
- src/dockview/labs.py
- src/dockview/theme.py
- src/dockview/tui.py
- tests/test_smoke.py
README
# dockview
TUI visual e simples para Docker no Arch Linux (e qualquer distro Linux/macOS).
Uma baleia azul cuida dos seus containers pra você — sem decorar flags do `docker`.
## Por que
Rodar Docker puro no terminal é funcional, mas feio e fácil de errar
(`docker rm` sem querer, `docker ps` lotado de colunas). O dockview traz:
- 🐳 baleia ASCII azul na tela inicial
- **abas para cada tipo de recurso Docker**, tudo num lugar só:
- Containers · Imagens · Redes · Volumes · Plugins
- Compose · Swarm · Services · Stacks · Buildx (BuildKit)
- Labs (descobre `~/labs/*/docker-compose.yml` e sobe/derruba)
- ações por teclado: start / stop / restart / remove / logs
- painel de laboratórios que sobe e derruba seus compose locais
- visualizador de logs em tempo real
- navegação 100% no teclado, com cores azuis calmas
## Instalação
### Opção A — script automático (recomendado)
```bash
# já clonou? rode dentro da pasta:
./install.sh
# ou deixe o script clonar pra você:
./install.sh https://github.com/Diogo-Damasceno/dockview.git
```
O script cria um `.venv`, instala o pacote em modo editável e cria o
atalho `~/.local/bin/dockview`.
### Opção B — manual
Pré-requisitos:
- Python 3.11+
- Docker instalado e daemon rodando (`docker info` sem erro)
- seu usuário no grupo `docker` (ou rode com `sudo`)
```bash
git clone https://github.com/Diogo-Damasceno/dockview.git
cd dockview
python3 -m venv .venv
. .venv/bin/activate
pip install -e .
# atalho opcional
mkdir -p ~/.local/bin
ln -sf "$(pwd)/.venv/bin/dockview" ~/.local/bin/dockview
```
## Como rodar
```bash
dockview # se ~/.local/bin estiver no PATH
# ou, dentro do venv:
.venv/bin/dockview
```
## Atalhos
| Tecla | Ação |
|-------------|-----------------------------------|
| `tab` | próxima aba |
| `shift+tab` | aba anterior |
| `enter` | entrar (tela da baleia) / confirmar |
| `s` | start container / up lab |
| `x` | stop container / down lab |
| `r` | restart container |
| `d` | remove (container/imagem/volume) |
| `l` | ver logs do container |
| `q` | voltar / sair |
## Testando sem bagunçar nada
O dockview **só lê** o Docker por padrão — nenhuma ação destrutiva acontece
sem você apertar uma tecla de ação. Pra testar com segurança:
```bash
# 1) rode e navegue pelas abas (Containers, Imagens, Redes, ...)
dockview
# 2) crie um container efêmero e veja aparecer na aba Containers:
docker run --rm -d --name dockview-test alpine sleep 3600
# 3) no dockview: selecione "dockview-test" e aperte 'x' (stop) ou 'd' (remove)
# 4) limpe: docker rm -f dockview-test
```
### Labs (opcional)
Se você tem uma pasta `~/labs` com `docker-compose.yml`, a aba **Labs**
lista cada um, mostra se está rodando e sobe/derruba com `s`/`x`.
Exemplo de `~/labs/mini/docker-compose.yml`:
```yaml
services:
hello:
image: alpine
command: sleep 3600
```
Depois é só abrir o dockview e usar `s` na linha do lab.
## Requisitos
- Docker instalado e daemon rodando (`docker info` sem erro)
- Python 3.11+
- Linux (Arch testado); roda em qualquer distro/macOS com Docker
## Aviso ético
Ferramenta de uso pessoal/educacional para gerenciar seus próprios
containers. Remoção de containers/imagens/volumes é **irreversível** —
confirme sempre antes de apertar Enter. Não use para gerenciar sistemas
que não são seus sem autorização.
## Licença
MIT — veja `LICENSE`.
Como rodar na prática (entrada → saída):
$ dockview
(tela da baleia) ENTER -> abre painel setas: navega abas (Containers/Imagens/.../Labs) s/x/d/l: start/stop/rm/log