ECSS - Modulo 6

Docker no Ubuntu com acesso grafico pelo Windows Server

O aluno vai subir o Portainer no Ubuntu Server, publicar um container web de teste e acessar tudo pelo navegador da maquina Windows Server do proprio laboratorio.

Cenario

Containers sao usados para entregar aplicacoes de forma rapida, padronizada e com menor dependencia do sistema operacional. Neste exercicio, cada aluno usa sua rede isolada para instalar Docker no Ubuntu Server e gerenciar containers por uma interface grafica.

O acesso grafico sera feito a partir do Windows Server via navegador. Assim o aluno valida conectividade, publicacao de portas e administracao basica de containers em ambiente controlado.

Resumo

Duracao
35 a 50 min
Aluno
studentXX
Ubuntu
10.50.X.12
Windows Server
10.50.X.10
Portainer
9443 ou 9000
Web demo
8080

Objetivos do lab

  • Instalar e validar Docker no Ubuntu Server.
  • Subir o Portainer CE para gerenciar containers por interface web.
  • Executar um container web simples com Nginx.
  • Acessar as interfaces pelo navegador do Windows Server.
  • Identificar riscos basicos de exposicao de portas e uso do socket Docker.

Antes de comecar

Substitua X pelo numero do seu aluno. Exemplos: student01 = 10.50.1.12, student02 = 10.50.2.12.
  1. Acesse o Ubuntu Server do seu aluno pelo Guacamole.
  2. Acesse tambem o Windows Server do mesmo aluno.
  3. Nao use IP publico para este lab. Use somente os IPs internos 10.50.X.0/24.
  4. Se o Ubuntu ja tiver Docker instalado, apenas valide o servico e continue.

1. Validar IP e conectividade no Ubuntu

No Ubuntu Server, confirme o IP interno e teste acesso a Internet.

hostname -I
ip -4 addr
ping -c 4 1.1.1.1
O IP esperado do Ubuntu e 10.50.X.12. Se aparecer outro IP, anote o IP real e use-o nos proximos passos.

2. Instalar Docker

Instale o Docker usando o script oficial e habilite o servico.

sudo apt update
sudo apt -y install ca-certificates curl

if ! command -v docker >/dev/null 2>&1; then
  curl -fsSL https://get.docker.com | sudo sh
fi

sudo systemctl enable --now docker
sudo docker --version
sudo docker info --format 'Docker ativo: {{.ServerVersion}}'

3. Subir o Portainer CE

O Portainer sera a interface grafica usada para administrar containers no Ubuntu.

sudo docker volume create portainer_data

sudo docker run -d \
  --name portainer \
  --restart unless-stopped \
  -p 9000:9000 \
  -p 9443:9443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest
O mapeamento do /var/run/docker.sock da controle administrativo sobre o Docker. Em producao, limite quem pode acessar o Portainer.

4. Subir um container web de teste

Use um container Nginx leve para validar publicacao de porta e acesso grafico pelo Windows Server.

sudo docker run -d \
  --name web-demo \
  --restart unless-stopped \
  -p 8080:80 \
  nginx:alpine

sudo docker ps

O resultado deve mostrar os containers portainer e web-demo em execucao.

5. Liberar portas no firewall do Ubuntu, se necessario

Se o ufw estiver ativo, permita acesso somente da rede do aluno.

sudo ufw status

sudo ufw allow from 10.50.X.0/24 to any port 9443 proto tcp
sudo ufw allow from 10.50.X.0/24 to any port 9000 proto tcp
sudo ufw allow from 10.50.X.0/24 to any port 8080 proto tcp

sudo ufw status numbered
Se o ufw estiver inativo, siga para o proximo passo.

6. Testar a partir do Windows Server

No Windows Server do aluno, abra o PowerShell e teste as portas do Ubuntu.

Test-NetConnection 10.50.X.12 -Port 9443
Test-NetConnection 10.50.X.12 -Port 9000
Test-NetConnection 10.50.X.12 -Port 8080

O campo TcpTestSucceeded deve retornar True para as portas usadas.

7. Acessar as interfaces pelo navegador do Windows Server

  1. No Windows Server, abra o Microsoft Edge.
  2. Acesse https://10.50.X.12:9443.
  3. Se houver alerta de certificado, avance para continuar no ambiente de laboratorio.
  4. Crie o usuario administrador inicial do Portainer com uma senha temporaria do lab.
  5. Selecione o ambiente Local ou Get Started.
  6. Abra tambem http://10.50.X.12:8080 e valide a pagina do Nginx.
Evidencia esperada: dashboard do Portainer aberto e pagina Nginx carregando pelo Windows Server.

8. Explorar o Portainer

  1. No Portainer, abra Containers e localize portainer e web-demo.
  2. Abra Images e veja as imagens baixadas.
  3. Abra Volumes e identifique portainer_data.
  4. Abra Networks e identifique a rede bridge.
  5. Abra o container web-demo e veja logs, estatisticas e portas publicadas.

Discussao rapida de seguranca

  • Quais portas ficaram abertas no Ubuntu?
  • Por que o Portainer nao deve ficar exposto diretamente na Internet?
  • Qual e o risco de montar /var/run/docker.sock dentro de um container?
  • Por que usamos redes isoladas por aluno?
  • Como voce limitaria o acesso ao Portainer em producao?

9. Comandos de diagnostico

Use estes comandos se a interface nao abrir pelo Windows Server.

sudo docker ps
sudo docker logs --tail 80 portainer
sudo docker logs --tail 80 web-demo
sudo ss -tulpn | grep -E ':9000|:9443|:8080'
ip route

10. Limpeza opcional

Execute somente se o instrutor pedir para remover o ambiente Docker deste lab.

sudo docker stop web-demo portainer
sudo docker rm web-demo portainer
sudo docker volume rm portainer_data

Checklist de entrega

  • Docker instalado e servico ativo no Ubuntu.
  • Container portainer em execucao.
  • Container web-demo em execucao.
  • Portainer acessivel pelo Windows Server em https://10.50.X.12:9443.
  • Nginx acessivel pelo Windows Server em http://10.50.X.12:8080.
  • Print ou anotacao do docker ps e da tela Containers do Portainer.