Apresentação sobre o básico de Docker.
Build, Ship and Run Any Application Anywhere.
Docker Images, Docker registry, Docker Container, Docker store, Docker hub, dicas e problemas comuns.
8. 90% do comércio
global via +700
milhões de
containers por ano
● Padronização
● Portabilidade
● Segurança
● Facilidade
● Rapidez
Fonte: The History of the shipping container
11. Conteinerização
Formalmente chamado de virtualização a nível de sistema operacional.
O kernel permite a existência de múltiplas instâncias isoladas do espaço de
usuário. Cada instância é comumente chamada de container.
12. Máquinas Virtuais vs Containers
Bins/Libs Bins/Libs Bins/Libs
Host OS
Hardware
Container Engine
App A App B App C
Container
Bins/Libs Bins/Libs Bins/Libs
Hardware
Hypervisor
App A App B App C
Guest OS Guest OS Guest OS
VM
16. Dockerfile
Arquivo de texto com
instruções declarativas
para a construção da imagens.
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY . .
RUN dotnet publish -c Release -o /build
FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
RUN mkdir /logs
COPY --from=build /build .
EXPOSE 80
ENTRYPOINT ["dotnet", "Web.Api.dll"]
18. Docker Hub e Docker Store
● Docker Hub
○ Registry gratuito de imagens na nuvem.
○ Permite integração com repositórios para build automático.
○ “GITHUB” para Docker (comunidade)
● Docker Store
○ Conteúdo verificado
○ Imagens submetidas para aprovação
○ Parceiros (Microsoft, Redhat, Oracle, MySql)
19. Container
Container é o nome dado para a segregação de processos no mesmo kernel,
de forma que o processo seja isolado o máximo possível de todo o resto do
ambiente.
$ docker container [OPTIONS]
20. Docker Compose
O Docker Compose é uma ferramenta para definir e gerenciar aplicações
docker com múltiplos containers. Neste contexto os containers são chamados
de serviços.
$ docker-compose [OPTIONS]
24. Dicas / Possíveis Problemas
● Execução pelo Visual Studio vs Docker-compose
● Execução no windows com comandos não suportados
● Docker-compose não reconhecido no Docker for Windows (versão >
17.12)
● Otimização (multi-Stage build, RUN … &&, etc)