---
tags: intro,container
---
# Introdução para Containers
## Dúvidas no inicio ...
Uma guia para ajudar a responder perguntas frequentes no inicio de aprendizado de containers.
- O que é um container?
tecnologia que permite isolar processos reusando o sistema operativo linux (cpu, memoria, networking, etc).
> O sistema operativo linux tem funcionalidades que permitem criar os containers: cgroups, namespaces.
> Base de containers: cgroups (limites de recursos: cpu, memory) + namespaces (processos isolados em um novo namespace). O cgroups e namespaces sao funcionalidades do Kernel de Linux desde 2008.
- Qual é a diferença entre VM e container?
A VM e container permitem criar processos isolados do sistema operativo, mas usando tecnologias diferentes.
O VM usa a tecnologia de virtualização (type 1 - Hypervisor - full virtualization), a virtualização é ao nivel de hardware, e consume mais recursos de CPU e memoria porque precisa dos requerimentos minimos do sistema operativo a virtualizar, por exemplo os requerimentos minimos de criar um windows, sacrifica mais recursos.
No caso de containers ele são criados usando o mesmo kernel de linux, é ao nivel do sistema operativo, usa as funcionalidades do kernel para conseguir criar os containers.
> - [Containers vs VMs: What's the difference? by IBM](https://youtu.be/cjXI-yxqGTI)
> - VM is isolation of machines, while Containers is isolation of processes
> Portability and Flexibility
> Type 2 Virtualization: VMWare, home use cases (VM, Kubevirt).
- Containers é o mesmo que Docker ?
Containers é a definição, Docker é a empresa que crio um produto usando a tecnologia de containers, temos outras empresas além do docker.
https://docs.docker.com/get-docker/
https://podman.io/
- O que é kubernetes?
Kubernetes é um orquestrador, um dos mais usado. Tem outros orquestradores como: Docker Swarm, Apache Mesos, ECS da aws, Azure Container Service, etc.
> - [Kubernetes Concepts Explained in 9 Minutes! by KodeKloud](https://youtu.be/QJ4fODH6DXI)
- O que é ECS ?
- O que é Fargate?
- O que é EKS, AKS, GKE?
- O que é um register de containers? ACR, ECR, jfrog, etc?
- O que é o docker hub? https://hub.docker.com/
https://medium.com/codex/push-docker-image-to-docker-hub-acc978c76ad
## Hello world container
Ambiente online interagir com docker:
https://www.katacoda.com/courses/docker/deploying-first-container
> - [Docker Tutorial for Beginners - A Full DevOps Course on How to Run Applications in Containers](https://youtu.be/fqMOX6JJhGo)
## Networking em containers
## Volume em containers
## Segurança em containers
https://github.com/krol3/container-security-checklist
## Mais terminologia de containers
- OCI runtime, specification
- CRI - Container Runtime Interface: gVisor, kata containers, crio-o, runc, containerd.
- CNI - Container Network Interface: flannel, cilium, vmware NSX, weave net, calico, Open vSwitch
- CSI - Container Storage Interface: rook, ceph, openEbs
- SMI - Service Mesh Interface: IStio, Hashicorp Consul, Linkerd, Open Service Mesh.
- CPI - Cloud Provider Interface: vmWare, aws, Azure, Google cloud
---
## Material profundar nos conceitos
- https://www.redhat.com/en/topics/containers
- https://www.aquasec.com/cloud-native-academy/docker-container/
## Books
[Container Security by Liz Rice](https://containersecurity.tech/)