Notícias
Notice: Undefined variable: img_topdestaque in /var/www/clients/client0/web11/web/wp-content/themes/correiodigital/content.php on line 18
Executando containers no Docker

Executando containers no Docker

domingo, 14 de Maio de 2017

[ad_1]
Em resumo, o Docker é uma ferramenta que permite executar serviços facilmente em uma máquina. Ele garante que esses serviços estarão sempre no mesmo estado em todas as execuções, independentemente do sistema operacional ou bibliotecas do sistema. Isso pode parecer um pouco estranho, mas tente lembrar quantas vezes você já ouviu algo como “Eu não sei o que está acontecendo, ele funciona em minha máquina…”.

Ao lidar com aplicativos corporativos, é uma prática comum promover um artefato (uma versão de lançamento) através de muitos ambientes (como teste e casos de uso) antes de eventualmente implantá-lo para produção. No mundo ideal, esses ambientes deveriam ser como um espelho do ambiente de produção, mas na prática isso não é o que acontece na maior parte do tempo. Normalmente, esses ambientes são executados em diferentes máquinas, em diferentes sistemas operacionais e em diferentes versões da biblioteca, de modo que o problema de “funciona na minha máquina, não sei por que não está funcionando na produção” fica ainda pior. É aí que o Docker acaba por ser uma ferramenta incrível, uma vez que garante que, independentemente dessas diferenças, o artefato se comporte do mesmo modo.

Essa é talvez a característica mais importante que o Docker oferece. Mas há muito mais:

  • É realmente fácil de executar serviços como containers Docker. Assim, também ajuda muito na fase de desenvolvimento, porque você não precisa perder tempo instalando e configurando ferramentas em seu sistema operacional.
  • O Docker é uma ferramenta altamente colaborativa. Você pode reutilizar imagens do Docker que as pessoas construíram e compartilhar publicamente.
  • Ele motiva a infraestrutura como um código, uma vez que uma imagem Docker é totalmente descrita em um arquivo chamado Dockerfile que pode (e deve) ser versionado.
  • O Docker tem uma grande comunidade e está crescendo muito rápido.

A instalação do Docker pode variar de acordo com os sistemas operacionais. Por isso, sugiro que você siga os documentos oficiais para instalar o Docker em sua máquina.

Como eu mencionei, o Docker tem uma maneira muito elegante de executar serviços em uma máquina sem ter que, de fato, instalá-lo no sistema operacional. Ele consegue isso executando containers, que tecnicamente são uma virtualização Linux rodando no mesmo kernel que o sistema operacional do host, mas isolado dele.

Cada container deve executar um serviço específico, que é instanciado a partir de uma imagem Docker previamente construída, armazenada e compartilhada em um Registro Docker. O Registro Docker oficial público é o Docker Hub, onde você pode encontrar muitas imagens pré-construídas para quase tudo que você precisa.

Por exemplo, digamos que você deseja girar um cluster Elasticsearch em sua máquina local. Você pode ir para Docker Hub, digitar Elasticsearch no campo de pesquisa e escolher a imagem que melhor se encaixa às suas necessidades. Algumas ferramentas têm imagens oficiais (mantidas pela equipe Docker) e outras não. Qualquer pessoa pode se registrar no Docker Hub, criar suas próprias imagens e publicá-las. Isso torna o Docker uma ferramenta altamente colaborativa. Na verdade, também é possível publicar imagens privadas, mas você tem que pagar se deseja publicar mais de uma.

Basicamente, as imagens do Docker são arquivos binários que contêm tudo o que é necessário para executar um serviço específico. Quando você instancia um serviço de uma imagem Docker, então dizemos que você criou um container Docker. Uma analogia poderia ser algo como: uma imagem Docker está para uma classe Java assim como um container Docker está para um objeto. Você cria um container executando o comando docker run.

O comando docker run requer que você forneça o nome da imagem. Por exemplo:

$ docker run jenkins

Acima, jenkins é o nome da imagem. Se o Docker não puder encontrar localmente a imagem Jenkins, então ele tentará puxá-la do Docker Hub. Uma imagem Docker pode ter uma tag associada a ela, que geralmente indica a versão do serviço. Para executar uma tag específica, basta adicionar: ao nome da imagem e fornecer a tag:

$ docker run jenkins:2.32.3

Atenção: Se a tag não for fornecida, o Docker tentará puxar a tag mais recente. Há um mal entendido na tag mais recente porque ela é frequentemente interpretada como a “versão mais nova da imagem disponível”, mas isso pode não ser verdade. A mais recente é apenas uma tag quando você não fornece qualquer outra enquanto está construindo uma imagem Docker, isso não significa que ela é a versão mais recente.

Ao lidar com uma imagem oficial (como o Jenkins acima), nenhum nome de usuário é necessário no comando docker run. Mas se você estiver usando uma imagem não oficial, você precisa fornecer o nome de usuário do proprietário e o nome da imagem da seguinte forma:

$ docker run username/image_name:tag

Por exemplo, de volta ao exemplo de Elasticsearch, digamos que você deseja girar um cluster Elasticsearch em sua máquina local usando Docker. Eu enviei para o Docker Hub uma imagem do Elasticsearch Docker pronta que faz o trabalho duro para você, então você poderia se beneficiar dela apenas criando os containers que representam os nodes do Elasticsearch em questão de segundos:

Starting Elasticsearch node1

$ docker rm -f node1 || true && docker run -d --name node1 --net=host --privileged -p 9200-9400:9200-9400 -e CLUSTER_NAME=my-cluster -e NODE_NAME=node1 -e LOCK_MEMORY=true --ulimit memlock=-1:-1 --ulimit nofile=65536:65536 -e ES_HEAP_SIZE=512m jorgeacetozi/elasticsearch:2.3.5

Starting Elasticsearch node2

$ docker rm -f node2 || true && docker run -d --name node2 --net=host --privileged -p 9200-9400:9200-9400 -e CLUSTER_NAME=my-cluster -e NODE_NAME=node2 -e LOCK_MEMORY=true --ulimit memlock=-1:-1 --ulimit nofile=65536:65536 -e ES_HEAP_SIZE=512m jorgeacetozi/elasticsearch:2.3.5

Starting Elasticsearch node3

$ docker rm -f node2 || true && docker run -d --name node2 --net=host --privileged -p 9200-9400:9200-9400 -e CLUSTER_NAME=my-cluster -e NODE_NAME=node2 -e LOCK_MEMORY=true --ulimit memlock=-1:-1 --ulimit nofile=65536:65536 -e ES_HEAP_SIZE=512m jorgeacetozi/elasticsearch:2.3.5

Agora, basta ir ao seu navegador e digitar http://localhost:9200/_plugin/head para ver o cluster pronto e em funcionamento. Incrível, não é mesmo?

Isso foi apenas um exemplo. Então, agora vamos destruir o cluster Elasticsearch e entender alguns conceitos básicos do Docker antes de prosseguir.

$ docker rm -f node1 node2 node3

Comandos básicos do Docker

Estes são os comandos que você usará com mais frequência:

  • docker pull [image]: puxa a imagem do registro remoto para o seu sistema de arquivos local
  • docker run [image]: cria um container a partir da imagem específica do Docker
  • docker ps: lista os containers ativos
  • docker ps -a: lista todos os containers, independentemente de seus estados
  • docker images: lista as imagens na sua máquina
  • docker rm [container]: remove um container em execução
  • docker rmi [image]: remove uma imagem da sua máquina
  • docker exec [container]: executa um comando dentro do container
  • docker build: cria uma imagem Docker seguindo as instruções fornecidas em um arquivo especial chamado Dockerfile

Para obter mais informações, acesse a lista completa de comandos do Docker nos documentos oficiais.

O comando docker run

Você deve ter notado quando criou o cluster Elasticsearch antes que a instrução docker run pode ter um monte de parâmetros. Não tenha medo. Na maioria dos casos, você estará usando os mesmos parâmetros uma vez atrás da outra. Vamos dar uma olhada nos mais comuns.

Executando containers como um Deamon com -d

Para executar containers em segundo plano, você precisa fornecer o parâmetro -d na instrução docker run. Por exemplo, vamos criar um container Jenkins a partir da imagem oficial de Jenkins Docker:

$ docker run -d -p 8080:8080 jenkins

Observe que, ao executar um container com a opção -d, seu bash não será vinculado à instrução docker run. Além disso, ele irá imprimir o id de container depois de iniciá-lo.

Nomeando containers com -name

Cada container tem um id e um name. Quando você inicia um container sem fornecer um nome, o Docker atribuirá um nome aleatório para ele. Cada container docker relacionado a comandos funcionará tanto usando o id como com o nome, mas às vezes usar o nome é mais produtivo. Para atribuir um nome a um container, basta adicionar o parâmetro –name your_container_name à instrução docker run:

$ docker run -d --name jenkins -p 8080:8080 jenkins

Expor portas com -p

Tente criar este container Jenkins:

$ docker run -d jenkins

Agora vá para o navegador e digite http://localhost:8080. Não funciona, certo? Isso aconteceu porque você não consolidou a porta de serviço entre o container e o host (sua máquina). Para fazer isso, é necessário fornecer o parâmetro -p na instrução docker run. Agora recrie o container acima com a seguinte instrução:

$ docker run -d -p 8080:8080 jenkins

Atualize o navegador. Agora funciona! O -p espera a seguinte sintaxe: host_port:container_port.

Variáveis de ambiente com -e

Ao criar imagens Docker, você vai querer deixá-las tão flexíveis quanto possível para que as pessoas possam reutilizá-las em diferentes cenários. Por exemplo, ao criar um container MySQL a partir de uma imagem do MySQL Docker, você quer definir sua senha de raiz enquanto outras pessoas querem definir sua senha de raiz, certo?

Assim, os criadores da imagem Docker oficial do MySQL decidiram que a variável de ambiente MYSQL_ROOT_PASSWORD seria aquela que você deve definir para estabelecer a senha raiz para sua instância do MySQL. Você pode fazer isso fornecendo a variável de ambiente e seu valor na instrução docker run com o parâmetro -e:

$ docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:5.7

Volumes com -v

Tenha em mente que, por padrão, os containers são como Vegas: o que acontece em Vegas morre em Vegas. Isso significa que se você indexar alguns documentos nesse cluster Elasticsearch que você criou há alguns minutos e, em seguida, recriar esses containers, os documentos serão perdidos. Às vezes, esse é exatamente o comportamento que você está procurando (especialmente ao desenvolver ou testar) e às vezes não. Se você precisar manter o estado do container em reinicializações de container, será necessário montar um volume para seus containers adicionando o parâmetro -v à instrução docker run. Por exemplo, se você recriar o cluster Elasticsearch, mas agora adicionar o -v your_data_directory:/var/data/elasticsearch às instruções docker run, os documentos indexados não serão perdidos em reinicializações de containers porque seriam mantidos no diretório your_data_directory no seu computador (o seu computador é frequentemente chamado de “host”).

Em ambientes de nuvem como o AWS, é uma prática comum montar volumes em armazenamentos escaláveis externos como Elastic Block Store e Elastic File System. Ao fazer isso, você pode até mesmo ser resiliente a uma falha de máquina sem perda de dados.

Existem outros usos para volumes Docker. No exemplo acima, os containers Elasticsearch estariam gerando dados e esses dados seriam externalizados para a máquina host. Você também pode querer fazer algo na ordem inversa, como compartilhar um arquivo de configuração da máquina host para um container.

Vamos tomar Nginx ou Apache como um exemplo. Essas ferramentas têm milhões de opções de configuração que você pode fornecer para diferentes situações. Agora você pode dizer: “Jorge, você acabou de me dizer que as variáveis de ambiente poderiam ser usadas para resolver esse tipo de problema”. A resposta é: sim, você poderia usá-las. Mas imagine o número de diferentes variáveis de ambiente envolvidas. Além disso, imagine que você quer um único Nginx para agir como um proxy reverso para muitos backends, como fazer o arquivo de configuração tão flexível apenas usando variáveis de ambiente? Esse não é o caminho a seguir. Devemos usar a ferramenta certa para resolver cada problema!

Vamos iniciar um Nginx com um arquivo de configuração personalizado da máquina host:

$ docker run -d -p 80:80 -v /some/nginx.conf:/etc/nginx/nginx.conf:ro nginx

O :ro na instrução -v indica que o container terá acesso somente para leitura desse arquivo.

Espero que este artigo possa ajudá-lo com os conceitos básicos necessários para começar a executar containers Docker em sua máquina local. Para uma maneira mais sofisticada de executar containers em ambientes complexos usando Kubernetes, dê uma olhada no meu curso Docker e Kubernetes.

***

Jorge Acetozi faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://www.jorgeacetozi.com.br/single-post/running-containers-on-docker.

[ad_2]

Source link

domingo, 14 de Maio de 2017

Mais recentes

preocupado-sergio-moro-da-forte-aviso-aos-carcereiros-de-lula

Preocupado, Sérgio Moro dá forte aviso aos carcereiros de Lula

Preocupado, Sérgio Moro dá forte aviso aos carcereiros de Lula Preocupado Conforme as informações do jornal “Zero Horas” do Rio Grande do Sul, foram definidos quatro pessoas para terem acesso à sala onde o ex-presidente se encontra, que fica no último andar do prédio. No próprio sábado (7), quando já se esperava a chegada de […]

sexta-feira, 13 de Abril de 2018

gleisi-esta-chorando-muito-lula-nao-vai-aguentar-ele-nao-vai-suportar-isso-esta-sofrendo-muitovao-matar-ele

Gleisi está chorando muito! “Lula não vai aguentar, ele não vai suportar isso, está sofrendo muito,vão matar ele”

Gleisi está chorando muito! “Lula não vai aguentar, ele não vai suportar isso, está sofrendo muito,vão matar ele” Gleisi está chorando muito- Gleisi se comove e chora – A turma do PT está arrasada, principalmente os seguidores de Gleisi Hoffmann que, ainda estão acampados em próximos a seda da Policia Federal em Curitiba. Hoje, sexta […]

sexta-feira, 13 de Abril de 2018

video-explode-na-web-vao-matar-lula-dentro-da-cadeia

Vídeo explode na web “Vão matar Lula dentro da cadeia”

Vídeo explode na web “Vão matar Lula dentro da cadeia” Estão envenenando Lula – um vídeo está circulando na web fazendo um grande alerta, vão matar LULA. O Partido dos Trabalhadores (PT) pede ao ministro da Segurança Pública, Raul Jungmann, cuidados especiais no preparo das refeições na prisão temendo pela segurança do ex-presidente do Brasil, […]

sexta-feira, 13 de Abril de 2018

ciro-gomes-invade-aonde-lula-esta-preso-vou-meter-bala-em-quem-entra-no-meio

Ciro Gomes invade aonde lula está preso ” Vou meter bala em quem entra no meio”

Ciro Gomes invade aonde lula está preso ” Vou meter bala em quem entra no meio” Ciro Gomes invade aonde lula está preso juíza Carolina Moura Lebbos é a responsável pela custódia do ex-presidente e é tida como uma magistrada muito rígida e que segue a risca todos os procedimentos da carceragem da Polícia Federal […]

sexta-feira, 13 de Abril de 2018

senadora-re-na-lava-jato-moro-seu-covarde-nos-vamos-invadir-esse-pais

SENADORA RÉ NA LAVA JATO: “MORO SEU COVARDE, NÓS VAMOS INVADIR ESSE PAÍS”

SENADORA RÉ NA LAVA JATO: “MORO SEU COVARDE, NÓS VAMOS INVADIR ESSE PAÍS” SENADORA RÉ NA LAVA JATO Acusada na Lava-Jato (juntamente com seu marido) de receber R$ 1 milhão de forma ilegal, a senadora usa e abusa do foro privilegiado e não mede as palavras ao atacar as autoridades do país. A senadora disse que […]

sexta-feira, 13 de Abril de 2018

bomba-gilmar-mendes-pode-perde-seu-cargo-ainda-hoje

BOMBA! Gilmar Mendes pode perde seu cargo ainda hoje!!

BOMBA! Gilmar Mendes pode perde seu cargo ainda hoje!! Gilmar Mendes-O presidente João Ricardo Costa da Associação dos Magistrados do Brasil, disse em uma entrevista ao Estadão, que pediu a saída urgente de Gilmar Mendes que, segundo ele “está muito mais interessado em resolver o ‘seu problema’ em relação ao seu envolvimento na Operação Lava Jato do que em […]

sexta-feira, 13 de Abril de 2018

forca-tarefa-da-lava-jato-reage-de-modo-contundente-a-fala-de-gilmar-mendes

Força-tarefa da Lava Jato reage de modo contundente à fala de Gilmar Mendes

Força-tarefa da Lava Jato reage de modo contundente à fala de Gilmar Mendes Força-tarefa da Lava Jato- Suprema Corte brasileira, o ministro Gilmar Mendes afirmou que a corrupção teria chegado ao Ministério Público Federal, em alusão ao papel desempenhado por procuradores federais da maior operação anticorrupção em toda a história do país, no combate aos […]

sexta-feira, 13 de Abril de 2018

Cármen Lúcia e General acabam de assumir relacionamento para o Brasil

Cármen Lúcia e General acabam de assumir relacionamento para o Brasil

Cármen Lúcia e General acabam de assumir relacionamento para o Brasil encontro entre Cármen Lúcia e general- No entanto, um fato chama atenção. Já nesta sexta-feira, Cármen Lúcia se encontrará com, o general Mourao .A questão é que o motivo da reunião para assumir relacionamento que ninguém sabia A ministra foi a responsável por dar […]

sexta-feira, 13 de Abril de 2018

misterioso-encontro-entre-carmen-lucia-e-general-pode-mudar-o-brasil-inteiro

Misterioso encontro entre Cármen Lúcia e general pode mudar o Brasil inteiro!

Misterioso encontro entre Cármen Lúcia e general pode mudar o Brasil inteiro! Misterioso encontro entre Cármen Lúcia e general- No entanto, um fato chama atenção. Já nesta sexta-feira, Cármen Lúcia se encontrará com o ministro da Defesa, o general Joaquim Silva e Luna e a advogada-Geral da União, Grace Mendonça. A questão é que o […]

sexta-feira, 13 de Abril de 2018

policia-federal-acaba-de-transferir-lula-para-outro-pais-vamos-acabar-com-a-graca-de-uma-vez-afirma-pf

Policia Federal acaba de transferir Lula para outro Pais, “Vamos acabar com a graça de uma vez, afirma pf “

Policia Federal acaba de transferir Lula para outro Pais, “Vamos acabar com a graça de uma vez, afirma pf “ PF se irrita – O telefone da Sede da Policia Federal não para de tocar, moradores ao redor estão impacientes com o circo do PT, liderado do Gleisi e Lindemberg, ambos Senadores da Repúblicas, possivelmente […]

quinta-feira, 12 de Abril de 2018

mulher-de-coronel-investigado-pagou-obra-da-filha-de-temer-com-dinheiro-vivo

Mulher de coronel investigado pagou obra da filha de Temer com dinheiro vivo

Mulher de coronel investigado pagou obra da filha de Temer com dinheiro vivo A informação foi revelada ao jornal por Piero Cosulich, dono da Ibiza Acabamentos, uma das fornecedoras de materiais utilizados na obra da filha de Temer. O empresário confirmou que Maria Rita realizou os pagamentos “em espécie” dentro de sua loja. Um dos […]

quinta-feira, 12 de Abril de 2018

forca-de-sergio-moro-ecoa-no-stf-e-ministro-surpreende-colegas

‘Força’ de Sérgio Moro ‘ecoa’ no STF e ministro surpreende colegas

‘Força’ de Sérgio Moro ‘ecoa’ no STF e ministro surpreende colegas Sérgio Moro- Ele sempre estava votando junto com Dias Toffoli, Marco Aurélio Mello, Ricardo Lewandowski e Gilmar Mendes, mas, dessa vez, mudou de lado e votou com os outros ministros, vencendo a votação. Após Gilmar Mendes, mais uma vez, massacrar a Operação Lava Jato […]

quinta-feira, 12 de Abril de 2018

irmaos-sao-flagrados-se-pegando-e-caso-choca-a-familia

Irmãos são flagrados se “pegando” e caso choca a família!

Irmãos são flagrados se “pegando” e caso choca a família! Irmãos são flagrados Dois irmãos, sendo um rapaz de 20 anos e uma adolescente de 16, foram flagrados se pegando. O fato aconteceu no hoje, no município de Chapadão do Sul-MS. Os jovens são irmãos por parte da mãe, e segundo a polícia, não foram […]

quinta-feira, 12 de Abril de 2018

apos-luta-por-manuela-eliana-descobre-doenca-e-gravacoes-do-sbt-sao-canceladas

Após luta por Manuela, Eliana descobre doença e gravações do SBT são canceladas

Após luta por Manuela, Eliana descobre doença e gravações do SBT são canceladas Muito querida pelo público, a loira teve que conviver com esse drama, mas conseguiu vencer. Sua filha nasceu muito saudável e os telespectadores ficaram felizes de participarem do que para muitos é considerado um milagre. Outro problema, no entanto, assola a vida […]

quinta-feira, 12 de Abril de 2018

sapo-gigante-de-90-kg

Sapo gigante de 90 kg é encontrado no Rio Mogi em Pradópolis

Um aborígene malaio encontrou um sapo de 90 kg – o que é praticamente o tamanho de uma criança de quatro anos. O batráquio colossal foi encontrado perto de um rio na região montanhosa de Gemencheh, na Malásia. Um turista inglês chegou a ver o bicho e, espantado, perguntou ao malaio se ele estaria disposto […]

quinta-feira, 12 de Abril de 2018

aecio-neves-acaba-de-ir-parar-no-hospital-e-noticia-triste-abala-o-brasil

Aécio Neves acaba de ir parar no hospital e noticia triste abala o Brasil!

Aécio Neves acaba de ir parar no hospital e noticia triste abala o Brasil! Aécio Neves acaba de ir parar no hospital O senador Aécio Neves (PSDB-MG) foi levado ao Hospital Santa Lúcia, em Brasília, na manhã desta quinta-feira (12), informa o G1. Ele teve um mal-estar e está acompanhado por familiares. O boletim médico ainda […]

quinta-feira, 12 de Abril de 2018

proxima-a-decisao-do-supremo-palocci-ameaca-dois-ministros-e-intimida-corte

Próxima à decisão do Supremo, Palocci ameaça dois ministros e intimida Corte

Próxima à decisão do Supremo, Palocci ameaça dois ministros e intimida Corte Palocci ameaça dois ministros Palocci foi preso através das investigações da Operação Lava Jato e se encontra na cadeia a cerca de um ano e meio. Há um tempo tentando que seu habeas corpus fosse julgado, o ex-ministro ficou revoltado quando Lula ”furou […]

quinta-feira, 12 de Abril de 2018

quebra-pau-entre-juiz-sergio-moro-e-cristiano-zanin-acaba-dando-errado

Quebra pau entre Juiz Sérgio Moro e Cristiano Zanin acaba dando errado!

Quebra pau entre Juiz Sérgio Moro e Cristiano Zanin acaba dando errado! Quebra pau entre Juiz Sérgio Moro e Cristiano Zanin O depoimento trata de e-mails que estavam no computador de Odebrecht. O empreiteiro conta que está avaliando cerca de 600 mil documentos para colocar em jogo na sua delação premiada. Logo no início da […]

quinta-feira, 12 de Abril de 2018

bomba-palocci-vai-delatar-ministros-dos-tribunais-superiores-ainda-hoje

BOMBA! Palocci vai delatar ministros dos tribunais superiores ainda hoje!!

BOMBA! Palocci vai delatar ministros dos tribunais superiores ainda hoje!! Na delação em que está negociando com a Polícia Federal, Palocci promete revelar alguns dos principais clientes de sua empresa de consultoria, diz O Globo. “Ele confessaria ter usado sua influência para favorecer esses clientes no governo em troca de milionárias propinas. Palocci citaria pelo […]

quinta-feira, 12 de Abril de 2018

viuva-de-domingos-montagner-quebra-o-silencio-e-surpreende-com-depoimento

Viúva de Domingos Montagner quebra o silêncio e surpreende com depoimento

Viúva de Domingos Montagner quebra o silêncio e surpreende com depoimento Viúva de Domingos Montagner quebra o silêncio- Não teve jeito e o artista, que estava no auge do seu sucesso, acabou falecendo. Domingos era muito querido e sua morte acabou causando comoção nacional. O ator era casado com a produtora teatral Luciana Lima e […]

quinta-feira, 12 de Abril de 2018

carregar mais