Docker

Básico de Docker

O que é Docker

Estamos nos referindo ao nome Docker, pois esse é o nome da empresa que criou a tecnologia que nos permite de forma brilhante criar, gerenciar e executar containers. Mas o que é um container ?

Um container é uma unidade de software que empacota o código e todas as suas dependências de forma que a aplicação seja executada de forma rápida e confiável de um ambiente de computação isolado.

Fonte: Docker

Uma definição mais direta: Um container é um processo isolado que roda em um sistema operacional.

Container é um recurso nativo do Linux, e como disse anteriormente, Docker é a empresa que criou a tecnologia.

Arquitetura de um container

Filesystem, namespaces e cgroups são os principais recursos do kernel do Linux que permitem a criação de containers.

Filesystem

O container é um processo isolado, isso significa que ele tem seu próprio sistema de arquivos.

Namespaces

Namespaces são uma forma de isolar recursos do sistema operacional para que um processo não possa ver ou afetar recursos de outro processo.

Cgroups

Cgroups são grupos de controle, que permitem limitar e isolar recursos de um processo.

Os containers são criados a partir de imagens montadas em camadas, que são armazenadas em um repositório chamado Docker Registry.

docker-layers docker-layers

Outra informação bem relevante é que as camadas mantém um estado imutável, ou seja, uma vez criada uma camada ela não pode ser alterada e que toda escrita é feita em uma camada temporária que é descartada quando o container é desligado.

Visão geral

docker-big-picture docker-big-picture

Essa é uma visão geral sobre o docker. Para uma visão mais detalhada acesse o Docker Overview

Instalação (Ubuntu)

  1. Remover versões antigas do Docker
sudo apt-get remove docker docker-engine docker.io containerd runc
  1. Atualizar o índice de pacotes
sudo apt-get update
  1. Instalar certificados
sudo sudo apt-get install ca-certificates curl gnupg
  1. Keyrings e GPG
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. Atualizar o índice de pacotes
sudo apt-get update
  1. Instalar Docker Engine e Docker Compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin