Mostrando postagens com marcador containers. Mostrar todas as postagens
Mostrando postagens com marcador containers. Mostrar todas as postagens

quarta-feira, 30 de abril de 2025

Instalando o Docker em Linux - 2025

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Guia atualizado para instalar Docker em Linux Ubuntu e CentOS 2025

Instalando o Docker em Linux – Guia Atualizado 2025

O Docker continua sendo uma ferramenta central para ambientes de containers, mesmo em 2025. Apesar da concorrência crescente de alternativas como Podman, o Docker mantém sua força devido à simplicidade e vasta documentação.

Este guia é objetivo: vamos instalar o Docker em sistemas baseados em Debian/Ubuntu e também cobrir a instalação em distribuições RHEL/CentOS/Oracle Linux.

1. Pré-requisitos

  • Distribuição Linux atualizada
  • Acesso root ou sudo
  • Conexão com a internet

2. Instalando Docker em Debian/Ubuntu

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

Após a instalação, verifique o serviço:

sudo systemctl status docker

3. Instalando Docker em RHEL/CentOS/Oracle Linux

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker

Confirme a instalação com:

docker --version

4. Pós-instalação (Opcional)

Para evitar usar sudo em cada comando Docker:

sudo usermod -aG docker $USER
newgrp docker

Agora você pode rodar comandos Docker diretamente sem precisar de sudo.

5. Considerações Finais

O Docker evoluiu, mas a base da instalação continua muito similar. Manter o ambiente atualizado e seguro é crucial para projetos sérios de infraestrutura.

Nos próximos artigos, vamos aprofundar o uso de Dockerfiles, Volumes, Redes e práticas seguras em ambientes de containers.

Sobre o Sysadmin Urbano

O Sysadmin Urbano nasceu da vivência real no front das operações de infraestrutura moderna. Aqui falamos de servidores, containers, automação, boas práticas e também dos desafios invisíveis da rotina de quem mantém sistemas vivos. Sem fórmulas mágicas, sem tutoriais pela metade — apenas conteúdo prático, direto e feito para quem sabe que a TI é tanto técnica quanto sobrevivência.

🔗 Confira mais artigos ou volte para a página inicial.

Gostou deste conteúdo?

Siga o Sysadmin Urbano para mais artigos técnicos sobre Infraestrutura, SysOps e DevOps.

Voltar para a página inicial

terça-feira, 29 de abril de 2025

Waiting for confirmation of MySQL service startup...

Docker travado em “Waiting for confirmation of MySQL service startup”

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Docker travado em “Waiting for confirmation of MySQL service startup”

Esse erro, apesar de simples à primeira vista, é um dos travamentos mais silenciosos e frustrantes ao tentar migrar containers MySQL. Logo após o primeiro docker run, o container trava antes mesmo de subir:

Waiting for confirmation of MySQL service startup

Esse tipo de erro normalmente indica que algo no volume de dados está impedindo a inicialização do banco, e o entrypoint padrão do container está preso esperando algo que não virá.

🔍 Possíveis causas

  • Volume com dados parcialmente migrados ou corrompidos
  • Permissões erradas nos arquivos do MySQL
  • Arquivos de instalação (como ibdata1, auto.cnf) presentes mas inválidos
  • Configuração personalizada my.cnf quebrada ou incompatível

🛠️ Como resolver

1️⃣ Testar sem volume

Rode o container limpo, sem montar volume. Se funcionar, o problema está nos dados:

docker run -e MYSQL_ROOT_PASSWORD=test --rm mysql:5.7

2️⃣ Verificar estrutura do volume

Confira se o volume está realmente com os arquivos corretos do MySQL:

ls -la /var/lib/mysql

Se necessário, corrija permissões:

chown -R mysql:mysql /var/lib/mysql

3️⃣ Apagar arquivos de PID ou socket

Se você migrou arquivos com o banco ligado, talvez arquivos "fantasmas" estejam bloqueando o start:

rm -f /var/run/mysqld/mysqld.pid
rm -f /var/run/mysqld/mysqld.sock

4️⃣ Ver logs detalhados

Use essas variáveis para visualizar o que está acontecendo:

-e MYSQL_LOG_CONSOLE=true
--log-error-verbosity=3

5️⃣ Teste interativo

Entre no container antes do daemon tentar iniciar:

docker run -it --rm -e MYSQL_ROOT_PASSWORD=test mysql:5.7 bash
mysqld --initialize --user=mysql
mysqld
  

Isso revelará erros internos antes que o script padrão tente inicializar o banco e trave.

"Nem sempre o MySQL trava por estar corrompido. Às vezes ele só está perdido em um novo lugar, tentando achar o caminho de casa."

Ao migrar um container MySQL, certifique-se de que os dados estão íntegros, as permissões corretas e o ambiente limpo. Um banco de dados exige cuidado — mesmo em um mundo de containers descartáveis.

segunda-feira, 28 de abril de 2025

Migrando Containers

Como Migrar um Container Docker para Outro Servidor

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Como Migrar um Container Docker para Outro Servidor

Saiba como transportar containers e volumes com segurança entre máquinas diferentes usando comandos simples.

📦 Método 1: Exportar container e volumes manualmente

1. Crie a imagem a partir do container

docker commit meu_container minha_imagem:latest

2. Exporte a imagem para um arquivo

docker save minha_imagem:latest -o minha_imagem.tar

3. Exporte dados do volume (se aplicável)

tar czf meus_dados.tar.gz /caminho/do/volume

4. Transfira para o novo servidor

scp minha_imagem.tar meus_dados.tar.gz usuario@servidor:/caminho/destino

5. Importe a imagem e os dados no novo host

docker load -i minha_imagem.tar
tar xzf meus_dados.tar.gz -C /caminho/destino

6. Suba novamente o container

docker run -d -v /caminho/destino:/dados minha_imagem

🧩 Método 2: Usando Docker Compose (ideal para múltiplos serviços)

1. Copie o arquivo docker-compose.yml e os volumes

Garanta que os dados estejam compactados ou montados via diretórios locais.

2. No novo servidor, execute:

docker-compose up -d

Essa abordagem é mais prática para aplicações complexas ou multi-containers.

"Containers são passageiros, mas dados são valiosos. Cuide da migração de ambos."

Sobre o Sysadmin Urbano

O Sysadmin Urbano nasceu da vivência real no front das operações de infraestrutura moderna. Aqui falamos de servidores, containers, automação, boas práticas e também dos desafios invisíveis da rotina de quem mantém sistemas vivos. Sem fórmulas mágicas, sem tutoriais pela metade — apenas conteúdo prático, direto e feito para quem sabe que a TI é tanto técnica quanto sobrevivência.

🔗 Confira mais artigos ou volte para a página inicial.

Gostou deste conteúdo?

Siga o Sysadmin Urbano para mais artigos técnicos sobre Infraestrutura, SysOps e DevOps.

Voltar para a página inicial

quarta-feira, 9 de abril de 2025

Usando Podman + Podman Compose com Imagens do Harbor

Podman + Podman Compose com Harbor

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Usando Podman e Podman Compose com Imagens do Harbor: Configurações, Alternativas e Boas Práticas

Introdução

Em ambientes modernos de DevOps e infraestrutura como código, o uso de containers é central para isolar serviços, distribuir aplicações e garantir portabilidade. Enquanto o Docker é amplamente conhecido, o Podman tem se consolidado como uma alternativa sólida e mais segura. Ele elimina o daemon, permite execução rootless e segue o padrão OCI.

Neste artigo, vamos integrar o Harbor (registry privado de containers) com o Podman, abordando duas abordagens distintas:

  • Uso direto com o Podman
  • Gerenciamento orquestrado com o Podman Compose

Além disso, vamos configurar corretamente o uso de registries privados (com ou sem TLS), ajustar permissões, discutir boas práticas e entender quando usar cada modelo.

1. Instalando o Podman

RHEL / Oracle Linux / CentOS

sudo dnf install -y podman

Ubuntu / Debian

sudo apt update
sudo apt install -y podman

Verifique a instalação:

podman --version

2. Configurando acesso ao Harbor

Faça login (se necessário):

podman login harbor.seuservidor.com

2.1 Usando registries sem HTTPS (HTTP)

sudo mkdir -p /etc/containers/registries.conf.d
sudo nano /etc/containers/registries.conf.d/harbor.conf

Adicione:

[[registry]]
prefix = "harbor.seuservidor.com"
location = "harbor.seuservidor.com"
insecure = true

3. Puxando e rodando imagens do Harbor com Podman

podman pull harbor.seuservidor.com/devops/nginx-custom:1.0
podman run -d --name webapp \
  -p 8080:80 \
  harbor.seuservidor.com/devops/nginx-custom:1.0
  • -d: executa o container em segundo plano (detached mode)
  • --name: define um nome identificável para o container
  • -p 8080:80: expõe a porta 80 do container na porta 8080 do host

Verificando a execução

podman ps

Isso mostrará todos os containers em execução, com ID, nome e portas mapeadas.

Acessando o serviço

Se o container oferece uma API ou serviço web, você pode testá-lo com:

curl http://localhost:8080

Ou acessando diretamente pelo navegador: http://localhost:8080

4. Alternativa: Usando Podman Compose

Para projetos com múltiplos serviços:

4.1 Instalação

pip install podman-compose
python3 -m venv venv
source venv/bin/activate
pip install podman-compose

5. Estrutura de Projeto

meu-app/
├── docker-compose.yml
└── .env (opcional)

Exemplo de docker-compose.yml

version: "3"
services:
  web:
    image: harbor.seuservidor.com/devops/nginx-custom:1.0
    ports:
      - "8080:80"
    restart: always

6. Subindo os serviços

podman-compose up -d
podman-compose logs
podman ps
podman-compose down

7. Comparativo: Podman direto vs Podman Compose

Critério Podman (direto) Podman Compose
Complexidade Baixa Média
Multi-serviços Manual Gerenciado via YAML
Escalabilidade Limitada Modular
Controle de rede Simples Mais granular
Ideal para Containers isolados Projetos multi-serviço

8. Boas práticas

  • Armazene as credenciais com segurança.
  • Evite usar a tag latest em produção.
  • Use versões fixas para garantir reprodutibilidade.
  • Crie redes próprias para isolar serviços:
podman network create meu_rede

Conclusão

Integrar o Harbor com Podman (com ou sem Compose) permite controle total sobre suas imagens, com mais segurança e independência do Docker daemon. O Podman direto é ideal para containers rápidos e isolados, enquanto o Compose se destaca em ambientes mais complexos.

Nos próximos capítulos, vamos explorar volumes persistentes, redes customizadas e estratégias de deploy em produção.

SysadminUrbano • Guia Técnico: Migração Windows 10 -> Windows 11 com Backup Completo

Migração Windows 10 → Windows 11: Backup completo e restauração sem perdas Checklist técnico com comandos, exportações e reaproveit...