Introdução a Contêiner na prática

Instrutor: Caio Flausino 

Previsto para o dia 26 de agosto, das 8h30 às 11h30 (Horário de Brasília).

 Introdução à contêiner na prática

O minicurso previsto para o dia 26 de agosto, das 8h30m às 11h30m, abordará como os contêineres Linux funcionam nos níveis mais baixos do sistema operacional Linux, explorando questões de desempenho e segurança. Além disso, também serão feitas diversas demonstrações das funcionalidades, dessa forma, o aluno conseguirá compreender como contêineres são formados e os impactos nas aplicações. O curso é recomendado para aqueles que queriam conhecer as aplicações de contêineres ou queriam se aprofundar no assunto entendendo os mecanismos existentes que são utilizados para essa tecnologia.

Configuração e instalação do ambiente

Requisitos

O minicurso não irá abordar uma ferramenta específica (docker, podman, ...), mas os conceitos vistos no curso podem ser aplicados a maioria delas, já que elas na maior parte simplesmente utilizam a API do kernel Linux para a criação dos contêineres e possuem comandos com sintaxe similares. O principal requisito é possuir um sistema Linux:

Pode ser tanto nativo quanto virtualizado (WSL2 é uma opção válida). Atenção, existe uma diferença entre WSL e WSL2, sendo o 2 uma máquina virtual e a alternativa recomendada

Instalação:

É importante que o aluno esteja com todas as ferramentas instaladas para que possa acompanhar e realizar os experimentos, portanto, agora será explicado os procedimentos de instalação e verificação.

A princípio, a maioria dos programas que serão utilizados neste minicurso vem por padrão na grande parte das distribuições Linux, sendo necessário apenas instalar o *podman* (mesmo assim, é importante verificar que estão presentes no sistema)

Comandos bash para instalação e verificação:

Podman

sudo apt install podman

sudo dnf install podman

Verificação (todos os programas devem ter uma saída de versão ou não apresentar erros)

podman --version &&

systemd-run --version &&

unshare --version &&

ls --version &&

echo 'esta na maquina!' &&

prlimit --version

Guia do minicurso

Contêineres Linux

Namespaces

SECCOMP

Cgroups

OverlayFS

Mão na massa

Links de apoio

Namespaces https://man7.org/linux/man-pages/man7/namespaces.7.html

Cgroups https://man7.org/linux/man-pages/man7/cgroups.7.html

SECCOMP https://man7.org/linux/man-pages/man2/seccomp.2.html

OverlayFS https://docs.kernel.org/filesystems/overlayfs.html

Capabilities https://man7.org/linux/man-pages/man7/capabilities.7.html

Podman https://www.redhat.com/pt-br/topics/containers/what-is-podman

systemd-run https://manpages.ubuntu.com/manpages/xenial/man1/systemd-run.1.html

unshare program https://manpages.ubuntu.com/manpages/xenial/man1/systemd-run.1.html

prlimit https://man7.org/linux/man-pages/man1/prlimit.1.html