Docker

Docker é uma plataforma para desenvolvedores e administradores de sistemas criarem, enviarem e executarem aplicativos que:

  • Permite que você monte aplicativos rapidamente a partir de componentes e elimina o atrito que pode surgir ao enviar o código.

  • Permite que você teste e implante seu código em produção o mais rápido possível.

Docker simplifica a entrega de software, tornando mais fácil construir e compartilhar imagens que contêm todo o ambiente do seu aplicativo ou sistema operacional do aplicativo.

Instalando o Docker

Docker HUB

O Docker Hubarrow-up-right é um serviço fornecido pela Docker Inc para localizar e compartilhar imagens de containers.

Criar conta em: https://hub.docker.com/signuparrow-up-right

  • dockerID: nome do seu repositório que será usado para encontrar suas imagens compartilhadas.

Play with Docker (lab online)

Docker Engine

Imagem

É o componente de construção do Docker.

Imagens são templates somente leitura que definem um sistema operacional de aplicativo a partir dos quais os containers do Docker são iniciados.

Cada imagem começa a partir de uma imagem base, por exemplo ubuntu, uma imagem base do Ubuntu, ou fedora, uma imagem base do Fedora. Você também pode usar suas próprias imagens como base para uma nova imagem, por exemplo, se você tiver uma imagem base de Go, poderá usá-la como base para todas as imagens de seus aplicativos.

Baixando uma Imagem

O comando docker pull faz download de uma imagem compartilhada no docker hub

Listando Imagens

ou

Outros comandos

Container

Container é o componente de execução do Docker e é criado a partir de uma imagem. Essa imagem informa ao Docker o que o container contém, qual processo executar quando for iniciado e uma variedade de outros dados de configuração. A imagem Docker é somente leitura. Quando o Docker executa um container a partir de uma imagem, ele adiciona uma camada de leitura e gravação na parte superior da imagem na qual seu aplicativo pode ser executado.

Um container pode ser executado, iniciado, parado, movido e excluído.

Executando um Container

O Docker Engine tenta encontrar uma imagem chamada hello-world. Ele encontra a imagem e a executa em um container. A única função do hello-world é enviar o texto que você vê em seu terminal.

Listando Containers em Execução

ou

Listando todos os Containers

Outros comandos de Container

Criando uma Imagem

Dockerfile

Docker constrói imagens lendo as instruções de um Dockerfile.

Um Dockerfile é um documento de texto que contém todos os comandos que um usuário pode chamar na linha de comando para montar uma imagem.

O comando docker image build usa esse arquivo e executa todos os comandos em sucessão para criar a imagem.

Comandos do Dockerfile

FROM -> Diz qual imagem base será utilizada

COPY -> Copia multiplos arquivos do contexto local para o container

ENV -> Seta uma variável de ambiente

RUN -> Executa um comando

CMD -> Define o comando a ser executado pelo container

EXPOSE -> Informa as portas de rede que estão escutando

Criando uma Imagem

Crie um diretório chamado helloworld

Abra um editor de texto e crie um arquivo chamado Dockerfile dentro de helloworld com o seguinte conteudo:

Gerando a Imagem

O docker build vai criar uma imagem de nome myhelloworld utilizando o contexto local (.)

Listando a Imagem

Rodando o Container

LetsGo WWG APP

Agora vamos criar uma imagem para compilar e executar nossa APP.

Clonando o repositório

Criando o Dockerfile

Entre na pasta lets-go-wwg-app e crie um arquivo com o nome Dockerfile com o seguinte conteudo:

Gerando a Imagem

Executando o Container

Estamos executando o container no modo interativo sem mapear nenhuma porta

Agora estamos mapeando a porta 3000 do container para a porta 8080 na maquina host

Mapeando para uma porta aleatória na maquina host (só é possivel por causa do EXPOSE)

Executando o Container como Daemon e não mais de forma interativa

Testando

Em outro terminal execute:

Conteúdos Extras

Last updated