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.
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.
[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).
[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.
[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.
[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.
[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?