Linux Development

Instalação (Ubuntu)

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker
sudo usermod -aG docker $USER

Bancos de dados & apps

Baixa o compose (MySQL, Postgres, MinIO, Mailpit) pra ~/database e sobe tudo:

mkdir -p "$HOME/database" && cd "$HOME/database" && curl -fsSL "https://raw.githubusercontent.com/edsuuu/Linux-Devlopment/refs/heads/main/docs/docker-compose.yml" -o "$HOME/database/docker-compose.yml" && sudo docker compose -f "$HOME/database/docker-compose.yml" up -d

Criar um banco dentro do container

No Postgres o client é psql -U postgres; no MySQL, mysql -u root. Pra sair, \q.

docker exec -it nomeDoContainer bash
psql -U postgres
create database nome;

Importar e exportar dumps

docker exec -i postgres_container psql -U postgres -d nomeDoBanco < dump.sql
docker exec -t postgres_container pg_dump -U postgres -d banco_atual > dump.sql
docker exec -i mysql_container mysql -u root -p nomeDoBanco < dump.sql
docker exec -t mysql_container mysqldump -u root -p banco_atual > dump.sql

Limpeza geral

Para e remove containers, imagens e volumes de uma vez:

docker stop $(docker ps -aq) && docker rm $(docker ps -aq) && docker rmi $(docker images -q) && docker volume rm $(docker volume ls -q)