{"id":3275,"date":"2015-04-08T20:55:15","date_gmt":"2015-04-08T23:55:15","guid":{"rendered":"http:\/\/www.viazap.com.br\/?p=3275"},"modified":"2015-04-05T00:05:56","modified_gmt":"2015-04-05T03:05:56","slug":"docker-infraestrutura-simples-e-rapida","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=3275","title":{"rendered":"DOCKER &#8211; INFRAESTRUTURA SIMPLES E R\u00c1PIDA"},"content":{"rendered":"<h1>O QUE \u00c9 DOCKER<\/h1>\n<p>&nbsp;<\/p>\n<div>Uma plataforma aberta para desenvolvedores e administradores de sistemas, usada para construir, executar e distribuir &#8220;m\u00e1quinas&#8221;.<\/p>\n<p>&#8220;M\u00e1quina&#8221; ser\u00e1 sempre usada entre aspas, pois esse termo ser\u00e1 usado apenas para facilitar o entendimento. Ele n\u00e3o \u00e9 correto, uma vez que m\u00e1quina mesmo \u00e9 somente o host onde o docker \u00e9 executado, ou seja, tudo roda de forma isolada na mesma m\u00e1quina.<\/p>\n<div class=\"figura\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/docker_vs_vmware-300x193.png\" alt=\"Parece Virtualiza\u00e7\u00e3o, mas n\u00e3o \u00e9 :)\" width=\"300\" height=\"193\" \/><\/div>\n<p>Tudo isso \u00e9 poss\u00edvel por conta da Docker Engine, que \u00e9 um forma de empacotamento de infraestrutura, que \u00e9 port\u00e1vel e simples, na qual constitui facilmente v\u00e1rias &#8220;m\u00e1quinas&#8221; executando no mesmo kernel, por\u00e9m isoladas logicamente, usando as tecnologias LXC, Aufs e Btrfs.<\/p>\n<p>Continuando sobre o conceito da plataforma Docker, eles disponibilizam tamb\u00e9m um servi\u00e7o de nuvem para armazenar e compartilhar imagens prontas, criadas tanto pela comunidade respons\u00e1vel pelo Docker, como por qualquer outra pessoa interessada, e o melhor, sem custo!<\/p>\n<p>Cada pessoa registrada no servi\u00e7o tem a possibilidade de criar um n\u00famero ilimitado de imagens p\u00fablicas (todos podem ver e baixar) e apenas uma imagem privada na conta gratuita.<br \/>\n<!--more--><\/p>\n<h1>IMAGENS E CONTAINERS<\/h1>\n<p>Uma m\u00e1quina docker pode ser composta de v\u00e1rias camadas. E essas camadas se dividem em dois tipos; Imagens e Containers.<\/p>\n<ul>\n<li>Imagens &#8211; uma vez as &#8220;m\u00e1quinas&#8221; em execu\u00e7\u00e3o essas camadas s\u00e3o montadas como somente leitura. Elas podem ser compartilhadas por v\u00e1rias &#8220;m\u00e1quinas&#8221;, ou seja, uma vez modificadas afetam todas as &#8220;m\u00e1quinas&#8221; que usam essas imagens.<\/li>\n<li>Containers &#8211; essas camadas s\u00e3o montadas como leitura e escrita. \u00c9 onde de fato est\u00e3o as modifica\u00e7\u00f5es da &#8220;m\u00e1quina&#8221; em execu\u00e7\u00e3o. Toda modifica\u00e7\u00e3o realizada em uma imagem \u00e9 feita a partir de um container.<\/li>\n<\/ul>\n<h1>INSTALANDO O DOCKER<\/h1>\n<p>Se voc\u00ea usar Debian Jessie ou superior, n\u00e3o ter\u00e1 problemas. Basta executar o comando abaixo:<\/p>\n<p><strong># aptitude install docker.io<\/strong><\/p>\n<p>Caso n\u00e3o utilize GNU\/Linux, pode usar o <a href=\"http:\/\/boot2docker.io\/\" target=\"_blank\" rel=\"nofollow\">boot2docker<\/a>.<\/p>\n<h1>COMANDOS B\u00c1SICOS<\/h1>\n<p>Infelizmente o Docker ainda n\u00e3o tem uma interface web ou gr\u00e1fica desktop suportada de forma est\u00e1vel pela sua comunidade oficial, sendo assim falaremos aqui apenas de comandos no shell.<\/p>\n<p>Seguem abaixo os comandos mais b\u00e1sicos do docker:<\/p>\n<ul>\n<li>docker pull [nome da imagem] &#8211; baixar imagem<\/li>\n<li>docker images &#8211; listar imagens<\/li>\n<li>docker run [nome da imagem] &#8211; iniciar a imagem<\/li>\n<li>docker ps &#8211; listar containers<\/li>\n<li>docker exec [id do container] [comando] &#8211; executa comandos no container<\/li>\n<\/ul>\n<p>Mais comandos podem ser encontrados nesse link:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.docker.com\/reference\/commandline\/cli\/\" target=\"_blank\" rel=\"nofollow\">https:\/\/docs.docker.com\/reference\/commandline\/cli\/<\/a><\/li>\n<\/ul>\n<\/div>\n<h1>UTILIZANDO O DOCKER<\/h1>\n<p>&nbsp;<\/p>\n<div>Instalando uma &#8220;m\u00e1quina&#8221; e executando em 2 minutos.<\/p>\n<p>Dois comandos, e o tempo gasto ser\u00e1 apenas de download:<\/p>\n<p><strong># docker pull nginx<br \/>\n# docker run -d -p 80:80 nginx<\/strong><\/p>\n<p>Pronto! Sua &#8220;m\u00e1quina&#8221; estar\u00e1 funcionando.<\/p>\n<p>O par\u00e2metro &#8220;-d&#8221; informa que a &#8220;m\u00e1quina&#8221; ser\u00e1 executada em background e o par\u00e2metro &#8220;-p&#8221; informa que toda requisi\u00e7\u00e3o da porta 80 do hospedeiro X ser\u00e1 redirecionada para a porta 80 da &#8220;m\u00e1quina&#8221; que acabou de ser iniciada.<\/p>\n<h1>SEM PERSIST\u00caNCIA<\/h1>\n<p>Lembrando que as mudan\u00e7as s\u00e3o apenas aplicadas no container, toda vez que desligar a &#8220;m\u00e1quina&#8221;, na verdade voc\u00ea estar\u00e1 desmontando essa camada, e ao iniciar a &#8220;m\u00e1quina&#8221; a partir de uma imagem ser\u00e1 criado um novo container, ou seja, ter\u00e1s uma &#8220;m\u00e1quina&#8221; &#8220;novinha em folha&#8221;.<\/p>\n<p>Para desligar um container em execu\u00e7\u00e3o, use o comando abaixo:<\/p>\n<p><strong># docker stop [id do container]<\/strong><\/p>\n<p>Lembre-se que para obter o id do container, \u00e9 necess\u00e1rio executar o comando abaixo:<\/p>\n<p><strong># docker ps<\/strong><\/p>\n<p>\u00c9 poss\u00edvel reiniciar um container que foi &#8220;desligado&#8221;. Para isso usa-se o comando abaixo:<\/p>\n<p><strong># docker start [id do container]<\/strong><\/p>\n<p>Obs.: lembrando que todos os dados de mem\u00f3ria RAM ser\u00e3o perdidos, apenas os dados em disco ser\u00e3o armazenados e reutilizados na pr\u00f3xima execu\u00e7\u00e3o.<\/p>\n<h1>ACESSO AO SHELL DA &#8220;M\u00c1QUINA&#8221;<\/h1>\n<p>Ap\u00f3s a &#8220;m\u00e1quina&#8221; estar em execu\u00e7\u00e3o, \u00e9 poss\u00edvel acessar o shell da &#8220;m\u00e1quina&#8221; e executar procedimentos localmente. Para isso usa-se o comando abaixo:<\/p>\n<p><strong># docker exec -it [id do container] bash<\/strong><\/p>\n<p>O par\u00e2metro &#8220;-i&#8221; informa que esse comando ser\u00e1 executado no modo interativo, e o par\u00e2metro &#8220;-t&#8221; informa que dever\u00e1 ser alocado um pseudo-TTY, por fim o comando bash ser\u00e1 executado na &#8220;m\u00e1quina&#8221; e lhe dar\u00e1 acesso ao seu shell.<\/p>\n<p>Por hoje \u00e9 s\u00f3. Aguardem novos artigos sobre Docker, pois falaremos sobre modifica\u00e7\u00e3o de imagens, mapeamento de disco, cria\u00e7\u00e3o de &#8220;m\u00e1quinas&#8221; &#8220;do zero&#8221; e outras coisas interessantes sobre esse assunto.<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>O QUE \u00c9 DOCKER &nbsp; Uma plataforma aberta para desenvolvedores e administradores de sistemas, usada para construir, executar e distribuir &#8220;m\u00e1quinas&#8221;. &#8220;M\u00e1quina&#8221; ser\u00e1 sempre usada entre aspas, pois esse termo ser\u00e1 usado apenas para facilitar o entendimento. Ele n\u00e3o \u00e9 correto, uma vez que m\u00e1quina mesmo \u00e9 somente o host onde o docker \u00e9 executado, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[91,730,1,830,256,42,51,439,495,514,68,271,501,127,548],"tags":[871,351,872,873,348],"class_list":["post-3275","post","type-post","status-publish","format-standard","hentry","category-banco-de-dados","category-clusterweb","category-viazap","category-debian","category-desktop","category-leitura-recomendada","category-linux-linuxrs","category-midia","category-profissional-de-ti","category-programacao","category-redes-2","category-seguranca-2","category-shell-script","category-sistemas-de-armazenamento","category-ubuntu-2","tag-docker","tag-e","tag-infraestrutura","tag-rapida","tag-simples"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/3275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3275"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/3275\/revisions"}],"predecessor-version":[{"id":3276,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/3275\/revisions\/3276"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}