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: 64.240 ]

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

Inkscape - Introdução (parte 1)

DHCP sem (quase :-D) mistérios

Monitorando seu servidor Jabber

Instalando e personalizando o aMSN 0.96

Baixando arquivos do Megaupload e Rapidshare pelo terminal

  
Comentários
[1] Comentário enviado por removido 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 removido 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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts