{"id":394,"date":"2025-01-18T18:27:23","date_gmt":"2025-01-18T18:27:23","guid":{"rendered":"https:\/\/whitesolutionit.com\/?p=394"},"modified":"2025-03-15T11:02:18","modified_gmt":"2025-03-15T11:02:18","slug":"funcionamiento-y-optimizacion-de-capas-en-docker","status":"publish","type":"post","link":"https:\/\/whitesolutionit.com\/?p=394","title":{"rendered":"Funcionamiento optimizado de capas en Docker"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Cuando trabajamos con Docker, entender c\u00f3mo funcionan las capas, c\u00f3mo se gestionan los archivos eliminados y c\u00f3mo se estructura el almacenamiento en el host es clave para optimizar im\u00e1genes y garantizar un uso eficiente del espacio. Este art\u00edculo re\u00fane todo lo necesario para comprender estos conceptos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. \u00bfQu\u00e9 Son las Capas en Docker?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker utiliza un sistema de archivos en capas para construir im\u00e1genes y ejecutar contenedores. Cada instrucci\u00f3n en un Dockerfile (como RUN, COPY, ADD) crea una <strong>nueva capa<\/strong> que contiene \u00fanicamente los cambios realizados en esa etapa.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>C\u00f3mo Funcionan las Capas<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">1. Las capas son <strong>incrementales<\/strong>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cada capa contiene solo los cambios realizados respecto a la capa anterior (nuevos archivos, modificaciones o eliminaciones).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2. Las capas son <strong>inmutables<\/strong>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez creadas, no pueden modificarse. Si un archivo en una capa anterior se elimina en una capa posterior, el archivo sigue existiendo f\u00edsicamente en la imagen, pero Docker lo <strong>oculta<\/strong> utilizando un sistema de archivos en capas como <strong>OverlayFS<\/strong> ya que las capas son de solo lectura una vez creadas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3. <strong>Reutilizaci\u00f3n de Capas:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si dos im\u00e1genes comparten una o m\u00e1s capas (por ejemplo, porque se basan en la misma imagen base), Docker reutiliza esas capas, lo que ahorra espacio y acelera las construcciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo Pr\u00e1ctico:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un Dockerfile como este:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">FROM ubuntu:20.04\nRUN apt-get update\nRUN apt-get install -y curl\nCOPY app \/app<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Generar\u00e1 las siguientes capas:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1. FROM ubuntu:20.04: La imagen base.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2. RUN apt-get update: Contiene los archivos modificados por apt-get update.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3. RUN apt-get install -y curl: A\u00f1ade los archivos relacionados con curl.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4. COPY app \/app: Copia los archivos desde la carpeta app del host en la imagen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. Funcionamiento del Ocultamiento de Archivos en Docker<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando se elimina un archivo en una imagen Docker, este <strong>no se elimina f\u00edsicamente<\/strong> de las capas anteriores debido a la inmutabilidad de las capas. En su lugar, Docker utiliza un mecanismo basado en <strong>whiteout files<\/strong> (archivos de ocultaci\u00f3n) para gestionarlo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>C\u00f3mo se Ocultan Archivos<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">1. <strong>Whiteout Files (<\/strong>.wh.&lt;nombre_archivo&gt;<strong>):<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando eliminas un archivo, Docker crea un archivo especial en la capa superior que indica al kernel que oculte el archivo correspondiente en las capas inferiores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2. <strong>OverlayFS y el Sistema de Archivos Combinado:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Docker utiliza <strong>OverlayFS<\/strong>, que monta todas las capas (superior e inferiores) en un \u00fanico sistema l\u00f3gico visible dentro del contenedor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2022 Si OverlayFS encuentra un whiteout file, excluye tanto el archivo original como el whiteout file del sistema combinado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo Pr\u00e1ctico:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Supongamos este Dockerfile:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">FROM ubuntu:20.04\nRUN echo \"Hola, Mundo!\" &gt; \/archivo.txt\nRUN rm \/archivo.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">1. En la primera capa, se crea \/archivo.txt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2. En la segunda capa, se genera .wh.archivo.txt, que oculta \/archivo.txt de las capas inferiores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3. Desde el contenedor, el archivo \/archivo.txt no ser\u00e1 visible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto no es una forma eficiente de trabajar con las imagenes ya que ocuparan mas espacio a la hora de trabajar con ellas con archivos inecesarios e inaccesibles.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. Por Qu\u00e9 Deber\u00edas Borrar Archivos en la Misma Capa<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si eliminas archivos en una capa distinta a la que los a\u00f1adi\u00f3, seguir\u00e1n ocupando espacio en la imagen, aunque no sean visibles. Esto puede hacer que las im\u00e1genes sean innecesariamente grandes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Soluci\u00f3n: Borra Archivos en la Misma Capa<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En lugar de:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">RUN apt-get update\nRUN apt-get install -y curl\nRUN rm -rf \/var\/lib\/apt\/lists\/*<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Usa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">RUN apt-get update &amp;&amp; apt-get install -y curl &amp;&amp; rm -rf \/var\/lib\/apt\/lists\/*<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Esto asegura que los archivos temporales no creen uso de espacio inecesario y la imagen quede mas ligera para su uso.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. Estructura de Directorios y su Uso<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker almacena las capas, metadatos e im\u00e1genes en el host, generalmente en \/var\/lib\/docker\/. Aqu\u00ed tienes una descripci\u00f3n de los directorios clave:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1. \/var\/lib\/docker\/overlay2\/<strong>:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-fixed-layout\"><tbody><tr><td>Subdirectorio <\/td><td>Proposito<\/td><\/tr><tr><td>diff\/<\/td><td>Este subdirectorio contiene <strong>los archivos y directorios a\u00f1adidos o modificados en esa capa espec\u00edfica<\/strong>.<\/td><\/tr><tr><td>link<\/td><td>Es un archivo que contiene un <strong>identificador \u00fanico para la capa<\/strong>. Act\u00faa como un enlace simb\u00f3lico interno que ayuda a Docker a rastrear esta capa.<\/td><\/tr><tr><td>lower<\/td><td><br>Este archivo lista las capas inferiores (base) sobre las que se construye la capa actual.<\/td><\/tr><tr><td>merged\/<\/td><td><br>Este subdirectorio contiene el <strong>sistema de archivos combinado<\/strong> que resulta de apilar todas las capas (inferiores y la capa actual).<\/td><\/tr><tr><td><br><br>init-id<\/td><td><br>Rastrea el estado inicial de la capa para ayudar al sistema interno de Docker.<\/td><\/tr><tr><td><br>work\/<\/td><td><br>Un directorio temporal que <strong>OverlayFS utiliza internamente para manejar operaciones de montaje<\/strong>.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5. Resumen<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker utiliza un dise\u00f1o eficiente y sistemas de archivos en capas para:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1. <strong>Gestionar Cambios Incrementales:<\/strong> Cada instrucci\u00f3n del Dockerfile crea una capa independiente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2. <strong>Optimizar Espacio:<\/strong> Reutiliza capas compartidas. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3. <strong>Funcionamiento<\/strong>: Entender el funcionamiento de las capas te ayudara a crear imagenes mas ligeras y eficientes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4. <strong>Estructura de Directorios:<\/strong> Organiza capas, im\u00e1genes y contenedores en un sistema jer\u00e1rquico.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cuando trabajamos con Docker, entender c\u00f3mo funcionan las capas, c\u00f3mo se gestionan los archivos eliminados y c\u00f3mo se estructura el almacenamiento en el host es clave para optimizar im\u00e1genes y garantizar un uso eficiente del espacio. Este art\u00edculo re\u00fane todo lo necesario para comprender estos conceptos. 1. \u00bfQu\u00e9 Son las Capas en Docker? Docker utiliza [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":318,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27],"tags":[23,22,21],"class_list":["post-394","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-posts","tag-container","tag-devops","tag-docker"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Funcionamiento optimizado de capas en Docker - White Solution IT<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/whitesolutionit.com\/?p=394\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Funcionamiento optimizado de capas en Docker - White Solution IT\" \/>\n<meta property=\"og:description\" content=\"Cuando trabajamos con Docker, entender c\u00f3mo funcionan las capas, c\u00f3mo se gestionan los archivos eliminados y c\u00f3mo se estructura el almacenamiento en el host es clave para optimizar im\u00e1genes y garantizar un uso eficiente del espacio. Este art\u00edculo re\u00fane todo lo necesario para comprender estos conceptos. 1. \u00bfQu\u00e9 Son las Capas en Docker? Docker utiliza [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/whitesolutionit.com\/?p=394\" \/>\n<meta property=\"og:site_name\" content=\"White Solution IT\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-18T18:27:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-15T11:02:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/whitesolutionit.com\/wp-content\/uploads\/2020\/01\/4695749.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"450\" \/>\n\t<meta property=\"og:image:height\" content=\"450\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Jaime Blanco\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jaime Blanco\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/whitesolutionit.com\/?p=394#article\",\"isPartOf\":{\"@id\":\"https:\/\/whitesolutionit.com\/?p=394\"},\"author\":{\"name\":\"Jaime Blanco\",\"@id\":\"https:\/\/whitesolutionit.com\/#\/schema\/person\/eae062b2c2c9fd8a41699a17eb73af98\"},\"headline\":\"Funcionamiento optimizado de capas en Docker\",\"datePublished\":\"2025-01-18T18:27:23+00:00\",\"dateModified\":\"2025-03-15T11:02:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/whitesolutionit.com\/?p=394\"},\"wordCount\":761,\"publisher\":{\"@id\":\"https:\/\/whitesolutionit.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/whitesolutionit.com\/?p=394#primaryimage\"},\"thumbnailUrl\":\"https:\/\/whitesolutionit.com\/wp-content\/uploads\/2020\/01\/4695749.webp\",\"keywords\":[\"Container\",\"DevOps\",\"Docker\"],\"articleSection\":[\"posts\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/whitesolutionit.com\/?p=394\",\"url\":\"https:\/\/whitesolutionit.com\/?p=394\",\"name\":\"Funcionamiento optimizado de capas en Docker - White Solution IT\",\"isPartOf\":{\"@id\":\"https:\/\/whitesolutionit.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/whitesolutionit.com\/?p=394#primaryimage\"},\"image\":{\"@id\":\"https:\/\/whitesolutionit.com\/?p=394#primaryimage\"},\"thumbnailUrl\":\"https:\/\/whitesolutionit.com\/wp-content\/uploads\/2020\/01\/4695749.webp\",\"datePublished\":\"2025-01-18T18:27:23+00:00\",\"dateModified\":\"2025-03-15T11:02:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/whitesolutionit.com\/?p=394#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/whitesolutionit.com\/?p=394\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/whitesolutionit.com\/?p=394#primaryimage\",\"url\":\"https:\/\/whitesolutionit.com\/wp-content\/uploads\/2020\/01\/4695749.webp\",\"contentUrl\":\"https:\/\/whitesolutionit.com\/wp-content\/uploads\/2020\/01\/4695749.webp\",\"width\":450,\"height\":450},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/whitesolutionit.com\/?p=394#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/whitesolutionit.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Funcionamiento optimizado de capas en Docker\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/whitesolutionit.com\/#website\",\"url\":\"https:\/\/whitesolutionit.com\/\",\"name\":\"White Solution IT\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/whitesolutionit.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/whitesolutionit.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/whitesolutionit.com\/#organization\",\"name\":\"White Solution IT\",\"url\":\"https:\/\/whitesolutionit.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/whitesolutionit.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/whitesolutionit.com\/wp-content\/uploads\/2024\/03\/whITe.gif\",\"contentUrl\":\"https:\/\/whitesolutionit.com\/wp-content\/uploads\/2024\/03\/whITe.gif\",\"width\":500,\"height\":500,\"caption\":\"White Solution IT\"},\"image\":{\"@id\":\"https:\/\/whitesolutionit.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/whitesolutionit.com\/#\/schema\/person\/eae062b2c2c9fd8a41699a17eb73af98\",\"name\":\"Jaime Blanco\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/whitesolutionit.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/91b2f8cf19941cb345ef5bf959df7ce8f66450115ebe67ab48ee01e841e4e647?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/91b2f8cf19941cb345ef5bf959df7ce8f66450115ebe67ab48ee01e841e4e647?s=96&d=mm&r=g\",\"caption\":\"Jaime Blanco\"},\"url\":\"https:\/\/whitesolutionit.com\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Funcionamiento optimizado de capas en Docker - White Solution IT","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/whitesolutionit.com\/?p=394","og_locale":"es_ES","og_type":"article","og_title":"Funcionamiento optimizado de capas en Docker - White Solution IT","og_description":"Cuando trabajamos con Docker, entender c\u00f3mo funcionan las capas, c\u00f3mo se gestionan los archivos eliminados y c\u00f3mo se estructura el almacenamiento en el host es clave para optimizar im\u00e1genes y garantizar un uso eficiente del espacio. Este art\u00edculo re\u00fane todo lo necesario para comprender estos conceptos. 1. \u00bfQu\u00e9 Son las Capas en Docker? Docker utiliza [&hellip;]","og_url":"https:\/\/whitesolutionit.com\/?p=394","og_site_name":"White Solution IT","article_published_time":"2025-01-18T18:27:23+00:00","article_modified_time":"2025-03-15T11:02:18+00:00","og_image":[{"width":450,"height":450,"url":"https:\/\/whitesolutionit.com\/wp-content\/uploads\/2020\/01\/4695749.webp","type":"image\/webp"}],"author":"Jaime Blanco","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Jaime Blanco","Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/whitesolutionit.com\/?p=394#article","isPartOf":{"@id":"https:\/\/whitesolutionit.com\/?p=394"},"author":{"name":"Jaime Blanco","@id":"https:\/\/whitesolutionit.com\/#\/schema\/person\/eae062b2c2c9fd8a41699a17eb73af98"},"headline":"Funcionamiento optimizado de capas en Docker","datePublished":"2025-01-18T18:27:23+00:00","dateModified":"2025-03-15T11:02:18+00:00","mainEntityOfPage":{"@id":"https:\/\/whitesolutionit.com\/?p=394"},"wordCount":761,"publisher":{"@id":"https:\/\/whitesolutionit.com\/#organization"},"image":{"@id":"https:\/\/whitesolutionit.com\/?p=394#primaryimage"},"thumbnailUrl":"https:\/\/whitesolutionit.com\/wp-content\/uploads\/2020\/01\/4695749.webp","keywords":["Container","DevOps","Docker"],"articleSection":["posts"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/whitesolutionit.com\/?p=394","url":"https:\/\/whitesolutionit.com\/?p=394","name":"Funcionamiento optimizado de capas en Docker - White Solution IT","isPartOf":{"@id":"https:\/\/whitesolutionit.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/whitesolutionit.com\/?p=394#primaryimage"},"image":{"@id":"https:\/\/whitesolutionit.com\/?p=394#primaryimage"},"thumbnailUrl":"https:\/\/whitesolutionit.com\/wp-content\/uploads\/2020\/01\/4695749.webp","datePublished":"2025-01-18T18:27:23+00:00","dateModified":"2025-03-15T11:02:18+00:00","breadcrumb":{"@id":"https:\/\/whitesolutionit.com\/?p=394#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/whitesolutionit.com\/?p=394"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/whitesolutionit.com\/?p=394#primaryimage","url":"https:\/\/whitesolutionit.com\/wp-content\/uploads\/2020\/01\/4695749.webp","contentUrl":"https:\/\/whitesolutionit.com\/wp-content\/uploads\/2020\/01\/4695749.webp","width":450,"height":450},{"@type":"BreadcrumbList","@id":"https:\/\/whitesolutionit.com\/?p=394#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/whitesolutionit.com\/"},{"@type":"ListItem","position":2,"name":"Funcionamiento optimizado de capas en Docker"}]},{"@type":"WebSite","@id":"https:\/\/whitesolutionit.com\/#website","url":"https:\/\/whitesolutionit.com\/","name":"White Solution IT","description":"","publisher":{"@id":"https:\/\/whitesolutionit.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/whitesolutionit.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/whitesolutionit.com\/#organization","name":"White Solution IT","url":"https:\/\/whitesolutionit.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/whitesolutionit.com\/#\/schema\/logo\/image\/","url":"https:\/\/whitesolutionit.com\/wp-content\/uploads\/2024\/03\/whITe.gif","contentUrl":"https:\/\/whitesolutionit.com\/wp-content\/uploads\/2024\/03\/whITe.gif","width":500,"height":500,"caption":"White Solution IT"},"image":{"@id":"https:\/\/whitesolutionit.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/whitesolutionit.com\/#\/schema\/person\/eae062b2c2c9fd8a41699a17eb73af98","name":"Jaime Blanco","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/whitesolutionit.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/91b2f8cf19941cb345ef5bf959df7ce8f66450115ebe67ab48ee01e841e4e647?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/91b2f8cf19941cb345ef5bf959df7ce8f66450115ebe67ab48ee01e841e4e647?s=96&d=mm&r=g","caption":"Jaime Blanco"},"url":"https:\/\/whitesolutionit.com\/?author=2"}]}},"_links":{"self":[{"href":"https:\/\/whitesolutionit.com\/index.php?rest_route=\/wp\/v2\/posts\/394","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/whitesolutionit.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/whitesolutionit.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/whitesolutionit.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/whitesolutionit.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=394"}],"version-history":[{"count":3,"href":"https:\/\/whitesolutionit.com\/index.php?rest_route=\/wp\/v2\/posts\/394\/revisions"}],"predecessor-version":[{"id":397,"href":"https:\/\/whitesolutionit.com\/index.php?rest_route=\/wp\/v2\/posts\/394\/revisions\/397"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/whitesolutionit.com\/index.php?rest_route=\/wp\/v2\/media\/318"}],"wp:attachment":[{"href":"https:\/\/whitesolutionit.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=394"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/whitesolutionit.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=394"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/whitesolutionit.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=394"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}