Docker - Infraestrutura simples e rápida

Docker é uma plataforma aberta para desenvolvedores e administradores de sistemas, usada para construir, executar e distribuir "máquinas". Nesse artigo vou explicar o que é isso e as suas funcionalidades mais básicas.

[ Hits: 61.112 ]

Por: Rafael Brito Gomes em 01/04/2015


Utilizando o Docker



Instalando uma "máquina" e executando em 2 minutos.

Dois comandos, e o tempo gasto será apenas de download:

# docker pull nginx
# docker run -d -p 80:80 nginx


Pronto! Sua "máquina" estará funcionando.

O parâmetro "-d" informa que a "máquina" será executada em background e o parâmetro "-p" informa que toda requisição da porta 80 do hospedeiro X será redirecionada para a porta 80 da "máquina" que acabou de ser iniciada.

Sem persistência

Lembrando que as mudanças são apenas aplicadas no container, toda vez que desligar a "máquina", na verdade você estará desmontando essa camada, e ao iniciar a "máquina" a partir de uma imagem será criado um novo container, ou seja, terás uma "máquina" "novinha em folha".

Para desligar um container em execução, use o comando abaixo:

# docker stop [id do container]

Lembre-se que para obter o id do container, é necessário executar o comando abaixo:

# docker ps

É possível reiniciar um container que foi "desligado". Para isso usa-se o comando abaixo:

# docker start [id do container]

Obs.: lembrando que todos os dados de memória RAM serão perdidos, apenas os dados em disco serão armazenados e reutilizados na próxima execução.

Acesso ao shell da "máquina"

Após a "máquina" estar em execução, é possível acessar o shell da "máquina" e executar procedimentos localmente. Para isso usa-se o comando abaixo:

# docker exec -it [id do container] bash

O parâmetro "-i" informa que esse comando será executado no modo interativo, e o parâmetro "-t" informa que deverá ser alocado um pseudo-TTY, por fim o comando bash será executado na "máquina" e lhe dará acesso ao seu shell.

Por hoje é só. Aguardem novos artigos sobre Docker, pois falaremos sobre modificação de imagens, mapeamento de disco, criação de "máquinas" "do zero" e outras coisas interessantes sobre esse assunto.

Página anterior    

Páginas do artigo
   1. O que é Docker
   2. Utilizando o Docker
Outros artigos deste autor

Criando imagens Docker com Dockerfile

Monitorando automaticamente o Docker com Zabbix

Leitura recomendada

Como instalar o Novo SGA - Sistema de Gerenciamento de Atendimento

Sintegra e Ted via wine

KRPMBuilder - Criação fácil de RPMs

Cairo-Dock - Seu desktop Linux com cara de MAC

Por que não migrar?

  
Comentários
[1] Comentário enviado por erisrjr em 01/04/2015 - 16:19h

Muito legal o artigo, obrigado por postar aqui.

Eu estou aguardando um tempinho "livre" para fazer mais testes, para algumas situações pode substituir as VM's com boas vantagens.

* Vi que ja postou mais no seu blog http://techfree.com.br/category/docker/ (Pode por referencia a ele nos seus artigos e na sua assinatura/Perfil caso queira).


[2] Comentário enviado por gomex em 01/04/2015 - 16:56h


[1] Comentário enviado por erisrjr em 01/04/2015 - 16:19h

Muito legal o artigo, obrigado por postar aqui.

Eu estou aguardando um tempinho "livre" para fazer mais testes, para algumas situações pode substituir as VM's com boas vantagens.

* Vi que ja postou mais no seu blog http://techfree.com.br/category/docker/ (Pode por referencia a ele nos seus artigos e na sua assinatura/Perfil caso queira).



Obrigado! Eu consigo editar esse artigo aqui do VoL?

[3] Comentário enviado por erisrjr em 01/04/2015 - 17:33h

Depois de Publicado acredito que não (Talvez a moderação consiga). Falei mais para os próximos que publicar e para quem ler os comentários possa ter ainda mais informação(Gostei bastante desta tecnologia. O pessoal do FreeBSD esta desenvolvendo algo semelhante, porem ainda é mais diferencial a favor do Linux).





[4] Comentário enviado por nicolo em 08/04/2015 - 11:42h


"tecnologias LXC, Aufs e Btrfs. "
Eu estou ficando velho mesmo. Buááa´.

[5] Comentário enviado por hrcerq em 11/04/2015 - 20:30h

Gostei do artigo. Simples e claro, e me ajudou a entender melhor o que é o Docker. Embora seja pouco provável que eu tenha que trabalhar diretamente com essa ferramenta, eu sei que o Docker está ganhando muito destaque e cedo ou tarde esses conhecimentos farão diferença.

Obrigado por trazer esses esclarecimentos.

---

Atenciosamente,
Hugo Cerqueira

[6] Comentário enviado por Tacioandrade em 15/04/2015 - 00:31h


Uma duvida simples sobre o Docker, no caso eu vi que o comando para iniciar um "container" passa como parâmetro a porta do host que o "guest" irá receber para prover o serviço.

# docker run -d -p 80:80 nginx

Porem caso eu queira subir no mesmo host 10 servidores web nginx por exemplo existe alguma forma, mesmo sendo colocar múltiplos IPs no host? Nesse ponto acho que o uso do LXC ou OpenVZ + alguma solução de orquestração, possa ser uma solução melhor do que o docker,

PS: No caso só estou prospectando pois não conheço a fundo a aplicação, essa é a segunda vez que ouço falar da mesma.

[7] Comentário enviado por gomex em 15/04/2015 - 09:00h


[6] Comentário enviado por Tacioandrade em 15/04/2015 - 00:31h


Uma duvida simples sobre o Docker, no caso eu vi que o comando para iniciar um "container" passa como parâmetro a porta do host que o "guest" irá receber para prover o serviço.

# docker run -d -p 80:80 nginx

Porem caso eu queira subir no mesmo host 10 servidores web nginx por exemplo existe alguma forma, mesmo sendo colocar múltiplos IPs no host? Nesse ponto acho que o uso do LXC ou OpenVZ + alguma solução de orquestração, possa ser uma solução melhor do que o docker,

PS: No caso só estou prospectando pois não conheço a fundo a aplicação, essa é a segunda vez que ouço falar da mesma.


De acordo com a documentação dele de networking.[1], é possível usar sim IPs distintos no host para expor a mesma porta em vários containers. "-p IP:host_port:container_port"

Para usar múltiplos containers, aconselho a utilizar o docker-compose, que é algo que farei um texto em pouco por aqui.

[8] Comentário enviado por Tacioandrade em 15/04/2015 - 13:37h


[7] Comentário enviado por gomex em 15/04/2015 - 09:00h

De acordo com a documentação dele de networking.[1], é possível usar sim IPs distintos no host para expor a mesma porta em vários containers. "-p IP:host_port:container_port"

Para usar múltiplos containers, aconselho a utilizar o docker-compose, que é algo que farei um texto em pouco por aqui.


Show agora se parece mais atrativa ainda a solução. =) Futuramente vou dar uma olhada com maior cuidado nela e realizar testes de laboratório. =)

Esperando os seus outros artigos futuramente por aqui também.

Att. Tácio Andrade.

[9] Comentário enviado por lucasvasconcelos em 16/09/2015 - 10:36h

Ótimo artigo, sem duvida Docker é o futuro, uma tecnologia como essa é incrível, adms de redes com certeza devem dominar essa ferramenta o mais rápido possível pois essa sim.... é uma verdadeira mão na roda.

parabéns pelo artigo, estou esperando por mais

[10] Comentário enviado por rjdiniz em 07/01/2016 - 08:43h

Rafael blz? fui tentar colocar o Docker para rodar a instalação foi blz não apresentou erro porem na segunda parte "Utilizando o Docker":

# docker pull nginx
FATA[0000] Post http:///var/run/docker.sock/v1.18/images/create?fromImage=nginx%3Alatest: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

Pode me dar uma força?
Raul Júnior

[11] Comentário enviado por jotagera em 04/02/2016 - 10:03h

Olá. Bom dia.
Gostaria de saber se o container Docker permite limitação de recursos, tal como memória ou processador?
Obrigado.

[12] Comentário enviado por duker em 27/05/2016 - 23:04h

Parabéns!! Estou iniciando no docker e seu artigo é um ótimo primeiro passo!


[13] Comentário enviado por Lisandro em 28/06/2016 - 10:56h

Muito legal. Vou ler todos os artigos.
Abraço


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts