Olá amigos.
Para quem ainda não está confiante para criar uma instancia de Linux na nuvem vou explicar de forma simples como criar "máquinas virtuais" usando Docker, embora seja importante destacar que o Docker trabalha com containers, que são mais leves e eficientes do que máquinas virtuais tradicionais. Vamos lá!
Passo 1: Instalar o Docker
- No Linux:
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
- No Windows ou Mac:
- Baixe e instale o Docker Desktop.
- Passo 2: Testar o Docker
- Após instalar, verifique se está funcionando:
docker --version
Teste com um container básico:
docker run hello-world
Se funcionar, o Docker está pronto!
Passo 2: Criar uma "máquina virtual" (container)
Escolha uma imagem no Docker Hub (repositório de imagens):
Exemplos:
- ubuntu (sistema baseado em Linux)
- alpine (Linux leve)
- nginx (servidor web)
Baixe a imagem e crie o container:
docker pull ubuntu
docker run -it ubuntu
- -it: Abre um terminal interativo dentro do container.
- ubuntu: Nome da imagem usada.
Agora você está "dentro" do container!
Passo 3: Comandos úteis
Listar containers rodando:
docker ps
Listar todos os containers (inclusive parados):
docker ps -a
Parar um container:
docker stop <ID ou nome do container>
Remover um container:
docker rm <ID ou nome do container>
Passo 4: Personalizar o container com um Dockerfile (opcional)
Se quiser criar uma configuração personalizada:
Crie um arquivo Dockerfile:
FROM ubuntu
RUN apt update && apt install -y curl
CMD ["bash"]
Construa a imagem:
docker build -t minha-imagem .
Rode um container baseado na sua imagem:
docker run -it minha-imagem
Com docker vai ser muito mais facil criar ambientes de teste além de economizar recursos em sua maquina.
Só precisa ter cuidado ao baixar imagens no Docker Hub sempre escolha repositórios verificados.
E vai poder criar varias instancias de um servidor Ubuntu sem custo nenhum.
Excelente para testes e aprendizado.
Alerta!
Por serem mais leves os containeres compartilham o kernel e isso pode trazer riscos a sua maquina dependendo do tipo de testes que vai realizar.
A principal diferença entre máquinas virtuais (VMs) e containers é o nível de abstração e isolamento que cada um oferece:
** Máquinas Virtuais (VMs):**
- Cada máquina virtual funciona como um sistema independente com seu próprio kernel, o que garante um isolamento forte entre a VM e o sistema hospedeiro.
- Cada VM geralmente exige mais recursos (memória, CPU, etc.) porque emula um sistema operacional completo.
- Ao testar vulnerabilidades, uma VM pode ser preferida quando se precisa emular um ambiente específico ou testar ataques que envolvam interações profundas com o sistema operacional (kernel).
- Como cada VM é uma instância independente, as falhas ou invasões em uma VM não afetam diretamente o host ou outras VMs, fornecendo um bom ambiente de teste isolado.
Containers: - Containers compartilham o mesmo kernel do sistema operacional hospedeiro, o que significa que o isolamento entre containers não é tão forte quanto em VMs. No entanto, containers oferecem isolamento suficiente para testes rápidos e mais eficientes.
- Containers são mais leves e rápidos, pois não precisam emular um sistema operacional completo. Isso os torna ideais para ambientes de testes ágeis, onde a velocidade de provisionamento e a escalabilidade são importantes.
- Containers são mais indicados quando se quer testar vulnerabilidades em nível de aplicação, como falhas em configurações de software, containers mal configurados ou falhas em ambientes de microserviços.
Escolher entre VMs e containers depende do tipo de uso que pretende realizar.
Qualquer erro ,duvida ou caso queira complementar esse tópico fique a vontade para comentar.
Tem muito a ser falado sobre esse assunto e se precisar de ajuda ou quiser saber mais comente ai!
Obrigado.