{"id":52238,"date":"2019-11-04T00:00:00","date_gmt":"2019-11-03T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/vm-ili-docker"},"modified":"2020-02-18T13:59:55","modified_gmt":"2020-02-18T10:59:55","slug":"vm-ili-docker","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/vm-ili-docker","title":{"rendered":"VM ou Docker?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Como saber se voc\u00ea precisa do Docker em vez de uma VM? \u00c9 necess\u00e1rio determinar o que exatamente voc\u00ea deseja isolar. Se precisar isolar um sistema com recursos garantidos e hardware virtual, a escolha deve recair sobre a VM. Se o objetivo \u00e9 isolar aplicativos em execu\u00e7\u00e3o como processos separados do sistema, voc\u00ea precisar\u00e1 do Docker.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"tak-v-chyom-zhe-otlichie-docker-konteynerov-ot-vm\">Qual \u00e9 a diferen\u00e7a entre cont\u00eaineres Docker e VMs?<\/h3>\n<p><\/p>\n<p><strong>M\u00e1quina Virtual (VM)<\/strong> \u00e9 um computador virtual com todos os dispositivos virtuais e um disco r\u00edgido virtual, no qual \u00e9 instalada uma nova OS independente, juntamente com drivers de dispositivo virtuais, gerenciamento de mem\u00f3ria e outros componentes. Ou seja, obtemos uma abstra\u00e7\u00e3o de hardware f\u00edsico que permite executar v\u00e1rios computadores virtuais em um \u00fanico computador.<br \/>\n<strong>Uma VM instalada pode ocupar espa\u00e7o no disco r\u00edgido do computador de diferentes maneiras:<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>espa\u00e7o fixo no disco r\u00edgido, o que permite acesso mais r\u00e1pido ao disco r\u00edgido virtual e evita a fragmenta\u00e7\u00e3o do arquivo;<\/li>\n<li>aloca\u00e7\u00e3o din\u00e2mica de mem\u00f3ria. \u00c0 medida que novos aplicativos s\u00e3o instalados, a mem\u00f3ria ser\u00e1 alocada dinamicamente para eles, at\u00e9 atingir o volume m\u00e1ximo permitido.<\/li>\n<\/ul>\n<p><\/p>\n<p>Quanto maior <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pt\/vps\/\"   title=\"m\u00e1quinas virtuais\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2012\">m\u00e1quinas virtuais<\/a> no servidor, mais espa\u00e7o eles ocupam e tamb\u00e9m exigem manuten\u00e7\u00e3o constante do ambiente necess\u00e1rio para o funcionamento do seu aplicativo.<\/p>\n<p><\/p>\n<p><strong>Docker<\/strong> \u00e9 um software para criar aplicativos baseados em cont\u00eaineres. Cont\u00eaineres e <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pt\/vps\/abuzoustojchivye-vps\/\"   title=\"m\u00e1quinas virtuais\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4214\">m\u00e1quinas virtuais<\/a> t\u00eam vantagens semelhantes, mas funcionam de maneiras diferentes. Os cont\u00eaineres ocupam menos espa\u00e7o, pois reutilizam mais recursos compartilhados do sistema host do que as VMs, pois, ao contr\u00e1rio das VMs, proporcionam virtualiza\u00e7\u00e3o a n\u00edvel de OS, e n\u00e3o de hardware. Essa abordagem garante menor consumo de mem\u00f3ria, implanta\u00e7\u00e3o r\u00e1pida e escalabilidade mais f\u00e1cil.<\/p>\n<p><\/p>\n<p>O cont\u00eainer oferece um mecanismo de encapsulamento de aplicativos mais eficiente, fornecendo as interfaces necess\u00e1rias do sistema host. Essa capacidade permite que os cont\u00eaineres compartilhem o n\u00facleo do sistema, onde cada cont\u00eainer opera como um processo separado do sistema operacional principal, possuindo seu pr\u00f3prio conjunto de \u00e1reas de mem\u00f3ria (seu pr\u00f3prio espa\u00e7o de endere\u00e7amento virtual). Como o espa\u00e7o de endere\u00e7amento virtual de cada cont\u00eainer \u00e9 independente, os dados pertencentes a diferentes \u00e1reas de mem\u00f3ria n\u00e3o podem ser alterados.<br \/>\nO sistema operacional nativo para Docker \u00e9 o Linux (o Docker tamb\u00e9m pode ser usado no Windows e no MacOS), aproveitando suas principais vantagens que permitem organizar a separa\u00e7\u00e3o do n\u00facleo. A execu\u00e7\u00e3o de cont\u00eaineres Docker no Windows ocorrer\u00e1 dentro de uma m\u00e1quina virtual com o sistema operacional Linux, uma vez que os cont\u00eaineres compartilham o sistema operacional do host, sendo que o Linux \u00e9 o sistema operacional principal para eles.<\/p>\n<p><\/p>\n<h3 id=\"konteyner---kak-eto-rabotaet\">Como funciona um cont\u00eainer?<\/h3>\n<p><\/p>\n<p><strong>O cont\u00eainer<\/strong> \u2014 \u00e9 uma abstra\u00e7\u00e3o em n\u00edvel de aplica\u00e7\u00e3o que combina c\u00f3digo e depend\u00eancias. Os cont\u00eaineres sempre s\u00e3o criados a partir de imagens, adicionando uma camada superior grav\u00e1vel e inicializando v\u00e1rios par\u00e2metros. Como o cont\u00eainer possui sua pr\u00f3pria camada para grava\u00e7\u00e3o e todas as altera\u00e7\u00f5es s\u00e3o salvas nessa camada, v\u00e1rios cont\u00eaineres podem compartilhar o acesso a uma mesma imagem base.<\/p>\n<p><\/p>\n<p>Cada cont\u00eainer pode ser configurado atrav\u00e9s de um arquivo no projeto docker-compose, inclu\u00eddo na solu\u00e7\u00e3o principal \u2014 docker-compose.yml. Nele, \u00e9 poss\u00edvel definir diferentes par\u00e2metros, como o nome do cont\u00eainer, portas, identificadores, limites de recursos e depend\u00eancias entre outros cont\u00eaineres. Se o nome do cont\u00eainer n\u00e3o for especificado nas configura\u00e7\u00f5es, o Docker criar\u00e1 um novo cont\u00eainer a cada vez, atribuindo-lhe um nome aleat\u00f3rio.<\/p>\n<p><\/p>\n<p>Quando um cont\u00eainer \u00e9 iniciado a partir de uma imagem, o Docker monta o sistema de arquivos para leitura e grava\u00e7\u00e3o sobre quaisquer camadas inferiores. \u00c9 aqui que todos os processos que desejamos que nosso cont\u00eainer Docker execute ocorrer\u00e3o. <\/p>\n<p><\/p>\n<p>Quando o Docker inicia um cont\u00eainer pela primeira vez, a camada inicial de leitura-grava\u00e7\u00e3o est\u00e1 vazia. Quando ocorrem altera\u00e7\u00f5es, elas s\u00e3o aplicadas a essa camada; por exemplo, se voc\u00ea quiser alterar um arquivo, esse arquivo ser\u00e1 copiado da camada somente leitura inferior para a camada de leitura e grava\u00e7\u00e3o.<br \/>\nA vers\u00e3o do arquivo que est\u00e1 dispon\u00edvel apenas para leitura ainda existir\u00e1, mas agora estar\u00e1 oculta sob uma c\u00f3pia. Volumes s\u00e3o usados para armazenar dados, independentemente do ciclo de vida do container. Os volumes s\u00e3o inicializados quando o container \u00e9 criado.<\/p>\n<p><\/p>\n<h3 id=\"kak-obraz-svyazan-s-konteynerom\">Como a imagem est\u00e1 relacionada ao container?<\/h3>\n<p><\/p>\n<p><strong>Modelo<\/strong> \u2014 \u00e9 o elemento principal para cada container. A imagem \u00e9 criada a partir de um Dockerfile adicionado ao projeto e representa um conjunto de sistemas de arquivos (camadas) empilhadas umas sobre as outras e agrupadas, dispon\u00edveis apenas para leitura; o n\u00famero m\u00e1ximo de camadas \u00e9 127.<\/p>\n<p><\/p>\n<p>No fundo de cada imagem, h\u00e1 uma imagem base, que \u00e9 especificada pelo comando FROM \u2014 o ponto de entrada ao construir a imagem Dockerfile. Cada camada \u00e9 uma camada somente leitura e \u00e9 representada por um comando que modifica o sistema de arquivos registrado no Dockerfile.<br \/>\nPara combinar essas camadas em uma \u00fanica imagem, o Docker usa o Advanced multi layered Union file system (AuFS \u00e9 baseado no UnionFS), permitindo que diferentes arquivos e diret\u00f3rios de diferentes camadas de arquivos se sobreponham de forma transparente, criando um sistema de arquivos coeso.<\/p>\n<p><\/p>\n<p>As camadas cont\u00eam metadados que permitem armazenar informa\u00e7\u00f5es complementares sobre cada camada durante a execu\u00e7\u00e3o e constru\u00e7\u00e3o. Cada camada cont\u00e9m um link para a pr\u00f3xima camada; se uma camada n\u00e3o tiver um link, significa que \u00e9 a camada superior da imagem.<\/p>\n<p><\/p>\n<p><strong>O Dockerfile pode conter comandos como:<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>FROM \u2014 ponto de entrada ao construir a imagem;<\/li>\n<li>MAINTAINER \u2014 nome do propriet\u00e1rio da imagem;<\/li>\n<li>RUN \u2014 executa um comando durante a constru\u00e7\u00e3o da imagem;<\/li>\n<li>ADD \u2014 copia um arquivo do host para a nova imagem, se um URL de arquivo for especificado, o Docker far\u00e1 o download para o diret\u00f3rio designado;<\/li>\n<li>ENV \u2014 vari\u00e1veis de ambiente;<\/li>\n<li>CMD \u2014 inicia a cria\u00e7\u00e3o de um novo container com base na imagem;<\/li>\n<li>ENTRYPOINT \u2014 comando executado ao iniciar o container.<\/li>\n<li>WORKDIR \u2014 diret\u00f3rio de trabalho para a execu\u00e7\u00e3o do comando CMD.<\/li>\n<li>USER \u2014 define o UID para o container criado a partir da imagem.<\/li>\n<li>VOLUME \u2014 monta um diret\u00f3rio do host no container.<\/li>\n<li>EXPOSE \u2014 conjunto de portas que s\u00e3o escutadas dentro do container.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"kak-rabotaet-unionfs\">Como funciona o UnionFS?<\/h3>\n<p><\/p>\n<p><strong>UnionFS<\/strong> \u2014 sistema de arquivos empilhado de servi\u00e7o (FS) para Linux e FreeBSD. Este FS implementa o mecanismo de c\u00f3pia ao gravar (Copy-On-Write, COW). A unidade de trabalho do UnionFS \u00e9 uma camada, cada camada deve ser vista como um sistema de arquivos completo separado, com uma hierarquia de diret\u00f3rios a partir da raiz. O UnionFS cria um ponto de montagem unificado para outros sistemas de arquivos e permite que arquivos e diret\u00f3rios de diferentes sistemas de arquivos (chamados de ramos) sejam unidos em um \u00fanico sistema de arquivos coeso de forma transparente para o usu\u00e1rio.<\/p>\n<p><\/p>\n<p>O conte\u00fado de diret\u00f3rios com caminhos iguais ser\u00e1 exibido junto em um \u00fanico diret\u00f3rio unificado (em um \u00fanico espa\u00e7o de nomes) do sistema de arquivos resultante. <\/p>\n<p><\/p>\n<p><strong>O UnionFS une as camadas seguindo os seguintes princ\u00edpios:<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>uma das camadas se torna a camada de n\u00edvel superior, a segunda e as subsequentes tornam-se camadas de n\u00edvel inferior;<\/li>\n<li>os objetos das camadas est\u00e3o dispon\u00edveis ao usu\u00e1rio de \"cima para baixo\", ou seja, se o objeto solicitado estiver na camada \"superior\", ele \u00e9 retornado, independentemente da exist\u00eancia de um objeto com esse nome na camada \"inferior\"; caso contr\u00e1rio, retorna-se o objeto da camada \"inferior\"; se o objeto solicitado n\u00e3o estiver em nenhuma das camadas, retorna-se o erro \"Arquivo ou diret\u00f3rio n\u00e3o encontrado\";<\/li>\n<li>a camada de trabalho \u00e9 a \"superior\", ou seja, todas as a\u00e7\u00f5es do usu\u00e1rio para modificar dados refletem-se apenas na camada de n\u00edvel superior, sem afetar o conte\u00fado das camadas inferiores.<\/li>\n<\/ul>\n<p><\/p>\n<p>O Docker \u00e9 a tecnologia mais comum usada para containers em aplicativos. Tornou-se o padr\u00e3o nesta \u00e1rea, construindo-se com base em cgroups e namespaces, que s\u00e3o fornecidos pelo n\u00facleo do Linux.<\/p>\n<p><\/p>\n<p>O Docker nos permite implantar aplica\u00e7\u00f5es rapidamente e utilizar o sistema de arquivos da maneira mais eficiente poss\u00edvel, dividindo o n\u00facleo do SO entre todos os containers, funcionando como processos separados do SO.<\/p>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/474068\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d Docker, \u0430 \u043d\u0435 VM? \u041d\u0443\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0415\u0441\u043b\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0441 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435, \u0442\u043e\u0433\u0434\u0430 \u0432\u044b\u0431\u043e\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0430\u0441\u0442\u044c \u043d\u0430 VM. \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043a\u0430\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f Docker. \u0422\u0430\u043a \u0432 \u0447\u0451\u043c \u0436\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043e\u0442 VM? \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-52238","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d Docker, \u0430 \u043d\u0435 VM? \u041d\u0443\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/vm-ili-docker\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47VM \u0438\u043b\u0438 Docker? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d Docker, \u0430 \u043d\u0435 VM? \u041d\u0443\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/vm-ili-docker\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-03T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T10:59:55+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47VM ou Docker? | ProHoster","description":"Como entender que voc\u00ea precisa do Docker e n\u00e3o de uma VM? \u00c9 preciso determinar o que exatamente voc\u00ea deseja isolar.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/vm-ili-docker","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47VM \u0438\u043b\u0438 Docker? | ProHoster","og:description":"\u041a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d Docker, \u0430 \u043d\u0435 VM? \u041d\u0443\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c.","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/vm-ili-docker","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-03T21:00:00+00:00","article:modified_time":"2020-02-18T10:59:55+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52238","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-09 18:02:23","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:47:21","updated":"2026-02-09 18:02:23","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/52238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=52238"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/52238\/revisions"}],"predecessor-version":[{"id":164089,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/52238\/revisions\/164089"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=52238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=52238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=52238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}