Neste artigo vou apresentar um resumo dos conceitos básicos relativos ao Docker para trabalhar com contêineres. |
Vamos iniciar com a definição de contêiner:
"Um contêiner é uma unidade padrão de software que empacota o código e todas as suas dependências para que o aplicativo seja executado de maneira rápida e confiável de um ambiente de computação para outro."
|
Os Contêineres do Docker que são executados no Docker Engine e possuem as seguintes características:
Os contêineres Docker são criados a partir de imagens que podem estar prontas e disponíveis em um repositório como o Docker Hub ou podem ser criadas de forma customizadas.
Assim, uma imagem de um contêiner do Docker é um pacote de software leve, autônomo e executável que inclui tudo o que é necessário para executar um aplicativo: código, runtime, ferramentas do sistema, bibliotecas do sistema e configurações.
A imagem é como se fosse a classe e o contêiner como se fosse uma instância dessa classe.
Definindo o ambiente
O Docker esta em toda a parte e podemos usar o Docker no Linux, no Windows, no MacOs, na Nuvem, em um DataCenter, etc.
Neste artigo eu vou usar o Docker no Linux e para isso eu usei o VirtualBox da Oracle no Windows 10 Pro e crie uma maáquina virtual Linux onde instalei o Ubuntu 18.04.
Para saber instalar o Docker e como criar um ambiente Linux no Windows 10 com o Ubuntu 18.04 veja este artigo: Instalando o Docker no Linux
Assim vamos usar o Docker no Linux em uma máquina virtual no Windows 10.
Criando o seu primeiro Contêiner Docker
O principal objetivo do Docker é criar e gerenciar contêineres. Vamos então criar o nosso primeiro contêiner Docker.
Estamos usando o modo Client do Docker e vamos usar o modo iterativo do Docker como um usuário.(Existe também o modo daemon no qual o contêiner fica rodando como processo em background)
E a primeira pergunta é : Como criar um contêiner ?
Se você abrir um terminal de comandos e digitar : docker container --help
Vai ver todos os comandos disponíveis para gerenciar contêineres no Docker. Dentre esses comandos destacamos dois comandos que podemos usar para criar um contêiner:
docker container create <opçoes> <imagem> <comandos>
docker container run <opções> <imagem> <comandos>
Obs: Para saber detalhes do comando digite: docker container create/run --help
Note que ambos os comandos precisam de uma imagem para poder criar o contêiner.
Então para criar um contêiner precisamos de uma imagem, e, felizmente temos centenas de imagens prontas para uso disponíveis no Docker Hub.
Então vamos acessar o Docker Hub e escolher uma imagem para criar o nosso contêiner.
Acessando o Docker Hub e clicando em explore digite: microsoft/dotnet ou acesse diretamente este link: https://hub.docker.com/r/microsoft/dotnet
Você verá as tags das imagens das Microsoft disponíveis e a documentação das imagens.
Vamos usar a imagem microsoft/dotnet:2.1-sdk que contém o .NET Core SDK e vamos criar um contêiner chamado netcore1.
Para poder usar a imagem
teremos que baixá-la localmente e isso pode ser feito
pelo comando create ou
podemos baixar a imagem antes de emitir o comando create
usando o comando :
docker image pull
<nome-imagem>
Abra o terminal e digite o comando: docker image pull microsoft/dotnet:2.1-sdk
Ao final para ver a imagem local digite: docker images
Note que a imagem possui um tamanho de 1.73 GB, é identificada pelo IMAGE ID 2668beec2c38 e possui o nome microsoft/dotnet e a tag 2.1-sdk.
Agora que temos a imagem podemos criar o contêiner digitando o seguinte comando no terminal:
docker container create --name netcore1 microsoft/dotnet:2.1-sdk
Ao final da execução do comando será emitido um hash do contêiner criado:
Para visualizar o contêiner criado podemos usar os comandos:
docker container ls -a ou docker container ps -a
Vemos o contêiner identificado por um CONTAINER ID, o nome da imagem usada, o comando que foi executado, quando ele foi criado, qual o status atual do contêiner , a porta usada pelo contêiner e o nome que atribuímos ao contêiner : netcore1.
Observe que o contêiner foi criado mas esta parado sem executar nada.
Vamos então criar outro contêiner usando os parâmetros -i -t para executar o contêiner no modo iterativo e anexar um terminal ao contêiner. Assim vamos entrar no contêiner e poderemos emitir comandos.
Agora vamos usar o comando docker container run para criar, executar e entrar no contêiner. Abra o terminal e digite o comando:
docker container run -it --name netcore2 microsoft/dotnet:2.1-sdk
docker - é o executor do comando
container - indica que o comando vai atuar em um contêiner
run - é a porta de entrada no Docker e agrupa as seguintes funcionalidades básicas :
Download automático das imagens não encontradas localmente: docker image pull
Criação do container: docker container create
Inicialização do container: docker container start
Execução do contêiner : docker container exec
-it - aciona o modo iterativo (-i) e anexa um terminal (-t)
--name netcore2 - define o nome do contêiner como netcore2
microsoft/dotnet:2.1-sdk - é a imagem existente usada para criar o contêiner
Ao final da execução veremos um prompt de comandos aberto no terminal:
Vamos agora criar e executar uma aplicação console .NET Core digitando os comandos:
mkdir demo
cd demo
dotnet new console
ls -g
dotnet run
exit
Veja o resultado:
Dessa forma :
1-
Criamos uma pasta demo no contêiner : mkdir demo e
cd demo
2- Criamos um projeto .net do tipo console : dotnet new
console
3- Listamos o contêudo da pasta demo : ls -g
4- Executamos a aplicação console : dotnet run
5- Saimos do contêiner : exit
Agora para visualizar os contêineres em execução ou parados digite: docker container ps -a
Nota: Voce pode usar ou não palavra container nestes comandos, mas recomenda-se usar para deixar claro que o comando atua sobre contêineres.
Pronto. Você criou seus primeiros contêineres Docker usando os comandos:
docker
container create <nome_da_imagem>
docker
container run <nome_da_imagem>
Sendo que o comando run faz o serviço completo: o download da imagem, cria o contêiner, executa o contêiner e permite o uso do contêiner no modo interativo.
Assim como fizemos para a aplicação Console podemos criar aplicações Web e executar em um contêiner e também podemos criar mais de um contêiner que poderão conter aplicações como um banco de dados.
Tudo isso sem afetar o nosso ambiente pois tudo roda dentro do contêiner.
Para parar um contêiner que estiver em execução basta digitar :
docker container stop <identificador>
Vamos remover agora todos os contêineres criados.
Podemos fazer isso usando o comando:
docker container rm <identificador>
ou ainda o comando :
docker container prune
que apaga todos os contêineres sem uso.
E com essas informações você já pode criar contêineres para aplicações .NET Core, ou, para outras aplicações.
"Todas as coisas são puras
para os puros, mas nada é puro para os contaminados e
infiéis; antes o seu entendimento e consciência estão
contaminados.
Confessam que conhecem a Deus, mas negam-no com as
obras, sendo abomináveis, e desobedientes, e reprovados
para toda a boa obra."
Tito 1:15,16
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Entity Framework - Conceitos Básicos - Uma visão geral - Macoratti