{"id":3895,"date":"2017-06-06T10:29:36","date_gmt":"2017-06-06T13:29:36","guid":{"rendered":"http:\/\/blog.dialhost.com.br\/?p=3895"},"modified":"2019-05-03T17:53:47","modified_gmt":"2019-05-03T20:53:47","slug":"configurando-conteiner-docker-cloud","status":"publish","type":"post","link":"https:\/\/www.dialhost.com.br\/blog\/configurando-conteiner-docker-cloud\/","title":{"rendered":"Configurando o cont\u00eainer Docker em um Cloud"},"content":{"rendered":"\n<p>Seguindo o assunto de conteineriza\u00e7\u00e3o hoje trago um artigo pr\u00e1tico onde vou configurar o Cont\u00eainer Docker dentro de uma inst\u00e2ncia Cloud. Para isto Utilizarei a nossa plataforma <a href=\"https:\/\/www.dialhost.com.br\/dialcloud-plus?utm_campaign=link-on-post&amp;utm_source=blog-dialhost&amp;utm_medium=Blog\">DialCloud<\/a>.<\/p>\n\n\n\n<p>Para quem quiser seguir desde o come\u00e7o, deixo aqui o link do primeiro post sobre o assunto&nbsp;<a href=\"http:\/\/blog.dialhost.com.br\/cloud-2\/vms-vs-containers-quais-diferencas-e-usos\/\" target=\"_blank\" rel=\"noopener noreferrer\">VMS vs Containers quais diferen\u00e7as e usos?<\/a><\/p>\n\n\n\n<div id=\"toc_container\" class=\"have_bullets\"><p class=\"toc_title\">T&oacute;picos<\/p><ul class=\"toc_list\"><li><a href=\"#conteiner-docker\">Cont\u00eainer Docker<\/a><\/li><li><a href=\"#dockerfiles\">Dockerfiles<\/a><\/li><li><a href=\"#prontos-para-comecar\">Prontos para come\u00e7ar<\/a><\/li><li><a href=\"#instalando-o-docker\">Instalando o Docker<\/a><\/li><li><a href=\"#baixando-uma-imagem\">Baixando uma imagem<\/a><\/li><\/ul><\/div>\n<h2><span id=\"conteiner-docker\">Cont\u00eainer Docker<\/span><\/h2>\n\n\n\n<p>S\u00f3 para recaptular o Cont\u00eainer Docker trabalha em cima do Kernel do Linux para permitir que uma aplica\u00e7\u00e3o ganhe em portabilidade, isolamento, seguran\u00e7a contra viola\u00e7\u00e3o externa, Al\u00e9m de permitir o melhor gerenciamento de recursos.<\/p>\n\n\n\n<p>Cada cont\u00eainer Docker ir\u00e1 iniciar uma imagem Docker, o que equivaleria a uma imagem virtual para a virtualiza\u00e7\u00e3o de m\u00e1quina. Mas, no caso do Docker temos o benef\u00edcio de eles utilizarem muito menos recursos, j\u00e1 que eles s\u00e3o baseados em um mesmo kernel. Atrav\u00e9s dele conseguimos uma base confi\u00e1vel de tudo que \u00e9 necess\u00e1rio para executar as aplica\u00e7\u00f5es. Desta forma o Cont\u00eainer fica livre dos riscos externos causados pelas depend\u00eancias.<\/p>\n\n\n\n<h2><span id=\"dockerfiles\">Dockerfiles<\/span><\/h2>\n\n\n\n<p>Estes scripts s\u00e3o os respons\u00e1veis pelas orienta\u00e7\u00f5es que devem ser executadas na montagem de uma nova imagem. Estes Scripts substituem o processo manual de configurar uma imagem para cada Cont\u00eainer que voc\u00ea for utilizar.<\/p>\n\n\n\n<h2><span id=\"prontos-para-comecar\">Prontos para come\u00e7ar<\/span><\/h2>\n\n\n\n<p>Agora que j\u00e1 deixamos claro os conceitos b\u00e1sicos para a conteineriza\u00e7\u00e3o vamos iniciar a instala\u00e7\u00e3o. Primeiramente temos que criar uma inst\u00e2ncia. No caso peguei uma inst\u00e2ncia simples com 8GB de RAM e 40GB de disco e Ubuntu 14.04. Chamei ela em meu painel de docker-test, como podem ver abaixo.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"700\" height=\"376\" src=\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/05\/docker1.png\" alt=\"\" class=\"wp-image-8896\" srcset=\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/05\/docker1.png 700w, https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/05\/docker1-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure>\n\n\n\n<p>Com esta inst\u00e2ncia montada e com todos os dados SSH em m\u00e3os vamos aos comandos de instala\u00e7\u00e3o.<\/p>\n\n\n\n<h2><span id=\"instalando-o-docker\">Instalando o Docker<\/span><\/h2>\n\n\n\n<p>Com o acesso root em m\u00e3os vou entrar na m\u00e1quina e buscar por atualiza\u00e7\u00f5es do droplet. Para isto basta executar os comandos:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apt update<br> apt upgrade<\/pre>\n\n\n\n<p>S\u00f3 por garantia, confira se seu sistema tem suporte ao &nbsp;aufs (Ele \u00e9 um controlador de armazenamento utilizado pelo Docker).<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\u00a0apt install linux-image-extra-<code>uname -r<\/code><\/pre>\n\n\n\n<p>Agora temos que adicionar a chave e o reposit\u00f3rio do Docker aos arquivos, apt-key e ao sources list<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sh -c \"wget -qO- https:\/\/get.docker.io\/gpg | apt-key add -\"<br> sh -c \"echo deb http:\/\/get.docker.io\/ubuntu docker main\\<br> > \/etc\/apt\/sources.list.d\/docker.list\"<\/pre>\n\n\n\n<p>Fa\u00e7a um novo update no droplet com o primeiro comando que eu passei aqui e ent\u00e3o instale o docker \ud83d\ude42 \\o\/!<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\u00a0apt update<br> apt install lxc-docker<\/pre>\n\n\n\n<p>O Ubuntu possui um Firewall padr\u00e3o que bloqueia o encaminhamento de pacotes. Este encaminhamento de pacotes \u00e9 necess\u00e1rio para o funcionamento do docker. Assim, teremos que editar o arquivo ufw para liberar o encaminhamento.<\/p>\n\n\n\n<p>Para isto entre no arquivo e ent\u00e3o configure a op\u00e7\u00e3o DEFAULT_FORWARD_POLICY como &#8220;ACCEPT&#8221;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">vim \/etc\/default\/ufw<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">DEFAULT_FORWARD_POLICY=\"ACCEPT\"<\/pre>\n\n\n\n<p>Salve o arquivo e recarregue o UFW<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\u00a0ufw reload<\/pre>\n\n\n\n<p>Pronto, agora que seu docker est\u00e1 instalado voc\u00ea pode come\u00e7ar a montar seus cont\u00eaineres utilizando imagens criadas por voc\u00ea, ou o que \u00e9 mais legal ainda, buscando uma imagem publica oficial ou deixada pela comunidade atrav\u00e9s da <a href=\"https:\/\/store.docker.com\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>docker Store<\/strong><\/a>.<\/p>\n\n\n\n<h2><span id=\"baixando-uma-imagem\">Baixando uma imagem<\/span><\/h2>\n\n\n\n<p>Para um exemplo pr\u00e1tico, vou buscar a imagem oficial hello world&nbsp;do Docker para fazer a instala\u00e7\u00e3o. Primeiramente a gente baixa a imagem para a m\u00e1quina.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker pull hello-world<\/pre>\n\n\n\n<p>Agora que a imagem j\u00e1 est\u00e1 na minha m\u00e1quina eu posso criar um novo cont\u00eainer. Vale lembrar que n\u00e3o \u00e9 poss\u00edvel criar um cont\u00eainer vazio, sem nenhuma execu\u00e7\u00e3o. Por isso precisamos de uma imagem base. No exemplo abaixo eu vou criar um cont\u00eainer definindo o nome dele de my-hello&nbsp;e instalar minha imagem hello-world.<br>\n<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker run --name=my-hello hello-world<\/pre>\n\n\n\n<p>\nUma vez instalado voc\u00ea pode executar ele rodando o comando abaixo com o ID do cont\u00eainer<br><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker run eeb0fd308c5d<\/pre>\n\n\n\n<p>\nAgora basta voc\u00ea usufruir do cont\u00eainer Docker e a cada atualiza\u00e7\u00e3o que voc\u00ea fizer, n\u00e3o se esque\u00e7a de atualizar o dockerfile para n\u00e3o perder a portabilidade dele.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O Cont\u00eainer Docker \u00e9 um pacote de depend\u00eancias que permite a uma aplica\u00e7\u00e3o ganhar portabilidade, isolamento, seguran\u00e7a contra viola\u00e7\u00e3o externa, Al\u00e9m de permitir o melhor gerenciamento de recursos.\t\t\t\t<\/p>\n","protected":false},"author":1,"featured_media":8897,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[15,20,12],"tags":[51,59,60,61,85],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Configurando o cont\u00eainer Docker em um Cloud - Blog DialHost<\/title>\n<meta name=\"description\" content=\"Hoje trago um artigo pr\u00e1tico onde vou configurar o Cont\u00eainer Docker dentro de uma inst\u00e2ncia Cloud permitindo melhor portabilidade do projeto.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dialhost.com.br\/blog\/configurando-conteiner-docker-cloud\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Configurando o cont\u00eainer Docker em um Cloud - Blog DialHost\" \/>\n<meta property=\"og:description\" content=\"Hoje trago um artigo pr\u00e1tico onde vou configurar o Cont\u00eainer Docker dentro de uma inst\u00e2ncia Cloud permitindo melhor portabilidade do projeto.\" \/>\n<meta property=\"og:url\" content=\"\/blog\/configurando-conteiner-docker-cloud\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog DialHost\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/DialHost\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/DialHost\" \/>\n<meta property=\"article:published_time\" content=\"2017-06-06T13:29:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-05-03T20:53:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/04\/og-image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dialhost\" \/>\n<meta name=\"twitter:site\" content=\"@dialhost\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\",\"name\":\"DialHost Internet\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/\",\"sameAs\":[\"http:\/\/www.facebook.com\/DialHost\",\"https:\/\/www.instagram.com\/dialhost_oficial\/\",\"https:\/\/www.linkedin.com\/company\/dialhost-internet\",\"https:\/\/www.youtube.com\/channel\/UCAiqiX8IiqTSfA8wQhpzgXQ\",\"https:\/\/twitter.com\/dialhost\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#logo\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/03\/marca-dialhost.png\",\"width\":81,\"height\":81,\"caption\":\"DialHost Internet\"},\"image\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#website\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/\",\"name\":\"Blog DialHost\",\"description\":\"Os melhores conte\\u00fados sobre Desenvolvimento Web, Marketing e Neg\\u00f3cios\",\"publisher\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.dialhost.com.br\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/configurando-conteiner-docker-cloud\/#primaryimage\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2017\/06\/container_docker.jpg\",\"width\":960,\"height\":642},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/configurando-conteiner-docker-cloud\/#webpage\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/configurando-conteiner-docker-cloud\/\",\"name\":\"Configurando o cont\\u00eainer Docker em um Cloud - Blog DialHost\",\"isPartOf\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/configurando-conteiner-docker-cloud\/#primaryimage\"},\"datePublished\":\"2017-06-06T13:29:36+00:00\",\"dateModified\":\"2019-05-03T20:53:47+00:00\",\"description\":\"Hoje trago um artigo pr\\u00e1tico onde vou configurar o Cont\\u00eainer Docker dentro de uma inst\\u00e2ncia Cloud permitindo melhor portabilidade do projeto.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/configurando-conteiner-docker-cloud\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dialhost.com.br\/blog\/configurando-conteiner-docker-cloud\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/configurando-conteiner-docker-cloud\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"\/blog\/\",\"url\":\"\/blog\/\",\"name\":\"In\\u00edcio\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"\/blog\/configurando-conteiner-docker-cloud\/\",\"url\":\"\/blog\/configurando-conteiner-docker-cloud\/\",\"name\":\"Configurando o cont\\u00eainer Docker em um Cloud\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/configurando-conteiner-docker-cloud\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/configurando-conteiner-docker-cloud\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#\/schema\/person\/a0b10cbe35449dea173a06d4664f9fcc\"},\"headline\":\"Configurando o cont\\u00eainer Docker em um Cloud\",\"datePublished\":\"2017-06-06T13:29:36+00:00\",\"dateModified\":\"2019-05-03T20:53:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/configurando-conteiner-docker-cloud\/#webpage\"},\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/configurando-conteiner-docker-cloud\/#primaryimage\"},\"keywords\":\"cloud,container,cont\\u00eainer,cont\\u00eainer docker,docker\",\"articleSection\":\"Cloud Computing,Infraestrutura e Seguran\\u00e7a,Tecnologias\",\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dialhost.com.br\/blog\/configurando-conteiner-docker-cloud\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#\/schema\/person\/a0b10cbe35449dea173a06d4664f9fcc\",\"name\":\"DialHost Internet\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#personlogo\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/05feec2f99aef1c42b09aeaa637ee66f?s=96&r=g\",\"caption\":\"DialHost Internet\"},\"description\":\"H\\u00e1 mais de 18 anos proporcionando um servi\\u00e7o de hospedagem de sites voltado 100% na Experi\\u00eancia e Sucesso do Cliente, prezando a qualidade, transpar\\u00eancia e seguran\\u00e7a.\",\"sameAs\":[\"https:\/\/www.facebook.com\/DialHost\",\"https:\/\/www.instagram.com\/dialhost_oficial\/\",\"https:\/\/www.linkedin.com\/company\/dialhost-internet\",\"https:\/\/twitter.com\/dialhost\",\"https:\/\/www.youtube.com\/channel\/UCAiqiX8IiqTSfA8wQhpzgXQ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/3895"}],"collection":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/comments?post=3895"}],"version-history":[{"count":0,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/3895\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/media\/8897"}],"wp:attachment":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/media?parent=3895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/categories?post=3895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/tags?post=3895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}