{"id":45862,"date":"2015-09-16T21:10:52","date_gmt":"2015-09-16T18:10:52","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=45862"},"modified":"2019-08-08T14:53:32","modified_gmt":"2019-08-08T11:53:32","slug":"cloud-foundry-containers-warden-docker-and-garden","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/","title":{"rendered":"Cloud Foundry Containers: Warden, Docker, and Garden"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/08\/logo_cloud_docker_400_200px.jpg\" alt=\"logo_cloud_docker_400_200px\" style=\"border:1px solid lightgrey; margin: 0px 0px 15px 15px\" width=\"230\" class=\"alignright size-full wp-image-45863\" \/><\/p>\n<p><a href=\"https:\/\/docs.cloudfoundry.org\/concepts\/diego\/dea-vs-diego.html\" target=\"_blank\" rel=\"noopener noreferrer\">Warden<\/a> is a container implementation currently used in Cloud Foundry. At the same time, <a href=\"https:\/\/www.docker.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker<\/a> is another option to easily and efficiently manage containers. That\u2019s why a lot has been made to enable Docker in the Diego runtime.<\/p>\n<p>In addition to a brief comparison of Warden and Docker, we will also highlight how the solutions work together in <a href=\"https:\/\/github.com\/cloudfoundry\/garden\" target=\"_blank\" rel=\"noopener noreferrer\">Garden<\/a>\u2014the new container back end that will become available in Diego.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#What_is_similar\" >What is similar?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#What_is_different\" >What is different?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#Garden_Diego\" >Garden (Diego)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#Further_reading\" >Further reading<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#Related_video\" >Related video<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#About_the_author\" >About the author<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"What_is_similar\"><\/span>What is similar?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Warden and Docker containers have a number of similarities in their internal implementation, for instance: <\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\">Both employ <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">cgroups<\/code>\u2014to isolate usage of resources\u2014and <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">namespaces<\/code>\u2014to separate apps running inside containers from each other and from host processes. (These two features are provided by the Linux kernel.)<\/li>\n<li>Both Warden and Docker use layers combined with a union file system, which organizes them into a single isolated root file system to be used inside a container.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"What_is_different\"><\/span>What is different?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>There are also some differences. Warden is part of Cloud Foundry, so it doesn\u2019t need to support many file systems. At the moment, it works with AUFS and OverlayFS. Docker covers more union file systems, including these two, as well as Btrfs, ZFS, VFS, and the <em>devmapper<\/em> framework.<\/p>\n<p>The main difference between Docker and Warden is in the way container images are organized. Warden is designed to run applications that get all their dependencies from pieces of software called buildpacks. Warden containers usually have only two layers: a read-only layer with an OS root file system (for example, Ubuntu 14.04) and a nonpersistent, read\/write layer for the application itself, all its dependencies, and temporary data.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2015\/09\/warden-container-file-system.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2015\/09\/warden-container-file-system.png\" alt=\"\" width=\"504\" height=\"548\" class=\"aligncenter size-full wp-image-45873\" \/><\/a><\/center><\/p>\n<p>Unlike Warden, Docker is built to run images, which are distributed through <a href=\"https:\/\/hub.docker.com\" target=\"_blank\" rel=\"noopener noreferrer\">Docker Hub<\/a>. Before an app can work with Docker, you need to create an image for it. Users can download publicly available images and make their own based on them.<\/p>\n<p>Docker images consist of multiple layers, one for each <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">RUN<\/code> command. Layers are combined into a single file system, the same way as in Warden (see the diagram below). When a user creates an image based on someone else\u2019s image, Docker reuses the layers. For example, if they have a Jenkins image based on JRE and want to make their own, with a Java application that also needs JRE, Docker will reuse the JRE image and all of its parents.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2015\/09\/docker-conatiner-file-system.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2015\/09\/docker-conatiner-file-system.png\" alt=\"\" width=\"504\" height=\"665\" class=\"aligncenter size-full wp-image-45874\" \/><\/a><\/center><\/p>\n<p>There are also some other differences. This table sums up what resources can be isolated and what features are currently available in Warden and Docker containers.<\/p>\n<style type=\"text\/css\"><!--\n.myTable { background-color:transparent;border-collapse:collapse; } \n.myTable th { background-color:#E0E0E0;color:black;width:20%; } \n.myTable td, .myTable th { padding:5px;border:1px solid #989898; }\n.myTable tbody td th ul li { font-size:9px; }\n--><\/style>\n<p><center><\/p>\n<table class=\"myTable\" width=\"90%\" >\n<tbody>\n<tr>\n<th><center>Feature<\/center><\/th>\n<th><center><b>Warden<\/b><\/center><\/th>\n<th><center><b>Docker<\/b><\/center><\/th>\n<\/tr>\n<tr>\n<td>1. Resource isolation and control<\/td>\n<td>\n<ul>\n<li>CPU shares<\/li>\n<li>memory + swap<\/li>\n<li>network bandwidth<\/li>\n<li>disk size quota<\/li>\n<\/ul>\n<\/td>\n<td>\n<ul>\n<li>CPU shares<\/li>\n<li>CPU sets<\/li>\n<li>memory<\/li>\n<li>memory swap<\/li>\n<li>block device bandwidth<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td>2. Dynamic resource management<\/td>\n<td>Warden containers support this feature, but Cloud Foundry doesn&#8217;t use it.<\/td>\n<td>Not supported.<\/td>\n<\/tr>\n<tr>\n<td>3. Image management<\/td>\n<td>Only whole images can be reused to create new containers.<\/td>\n<td>Layered\u2014allows for reusing separate layers.<\/td>\n<\/tr>\n<tr>\n<td>4.\u00a0Linking containers<\/td>\n<td>no<\/td>\n<td>yes<\/td>\n<\/tr>\n<tr>\n<td>5. Exposing ports<\/td>\n<td>Single port per container (Multiple ports will be available in Garden\/Diego.)<\/td>\n<td>Multiple ports per container<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><\/center> <\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Garden_Diego\"><\/span>Garden (Diego)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><a href=\"https:\/\/github.com\/cloudfoundry\/garden\" target=\"_blank\" rel=\"noopener noreferrer\">Garden<\/a> is the new Cloud Foundry container back end, which will be available in <a href=\"https:\/\/docs.cloudfoundry.org\/concepts\/diego\/diego-architecture.html\" target=\"_blank\" rel=\"noopener noreferrer\">Diego<\/a>\u2014the brand new Cloud Foundry runtime. Garden is built around the same idea as Warden, but it has been refactored and re-implemented in Go. (Warden was written in Ruby.)<\/p>\n<p>So, what\u2019s the difference between Warden and Garden? First of all, Garden is modular. It supports multiple pluggable \u201cback ends\u201d\u2014pieces of software responsible for creating containers. At the moment, three back ends are available: <em>Linux<\/em>, <em>runC<\/em> (a container specification from the <a href=\"https:\/\/opencontainers.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Open Container Initiative<\/a>), and <em>Windows<\/em>. Yes, you can run Windows (.NET) applications with Garden!<\/p>\n<p>Another killer feature of the new Garden Linux back end is the possibility to run Docker images. Garden is able to fetch Docker images from Docker Hub, as well as from your own Docker repository. Generally, availability of Docker on Cloud Foundry is very good news for teams that already employ Docker images in their everyday activities and want to continue using them after they move to Cloud Foundry.<\/p>\n<p>Although Diego is still in development, some Cloud Foundry distributions (e.g., Pivotal CF) are already using it as a default app runtime. According to the <a href=\"https:\/\/www.pivotaltracker.com\/n\/projects\/1003146\" target=\"_blank\" rel=\"noopener noreferrer\">public tracker<\/a>, Diego 1.0\u2014which will finally replace DEA in open source Cloud Foundry\u2014will be out very soon.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/are-diego-and-docker-really-good-friends\/\">Are Diego and Docker Really Good Friends?<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/docker-containers-cloud-foundry-and-diego\/\">Docker Containers, Cloud Foundry, and Diego: Why Abstraction Matters<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Related_video\"><\/span>Related video<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><small>In this video, the representatives of different organizations comment on using Cloud Foundry with containers.<\/small><\/p>\n<p><center><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/Ue_ArLRs00E\" frameborder=\"0\" allowfullscreen><\/iframe><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"About_the_author\"><\/span>About the author<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><small><strong>Maksim Zhylinski<\/strong> is a Cloud Foundry Engineer at Altoros. He is an expert in cloud computing, networking, and Cloud Foundry BOSH, having worked on multiple BOSH CPIs, releases, and service brokers. Maksim has 6+ years of experience in everything Ruby, JavaScript, and Go, as well as extensive skills in server and client-side web application development. He is an active member of Ruby and Go communities and a frequent contributor to various open-source projects.<\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<\/p>\n<p>Warden is a container implementation currently used in Cloud Foundry. At the same time, Docker is another option to easily and efficiently manage containers. That\u2019s why a lot has been made to enable Docker in the Diego runtime.<\/p>\n<p>In addition to a brief comparison of Warden and Docker, we will also [&#8230;]<\/p>\n","protected":false},"author":76,"featured_media":45876,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[7],"tags":[873,570,206],"class_list":["post-45862","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news-and-opinion","tag-cloud-native","tag-containers","tag-oss-cloud-foundry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cloud Foundry Containers: Warden, Docker, and Garden | Altoros<\/title>\n<meta name=\"description\" content=\"This blog post compares Warden and Docker across implementation, differences\/similarities, and their interaction with Garden.\" \/>\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.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cloud Foundry Containers: Warden, Docker, and Garden | Altoros\" \/>\n<meta property=\"og:description\" content=\"Warden is a container implementation currently used in Cloud Foundry. At the same time, Docker is another option to easily and efficiently manage containers. That\u2019s why a lot has been made to enable Docker in the Diego runtime. In addition to a brief comparison of Warden and Docker, we will also [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-16T18:10:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-08-08T11:53:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2015\/09\/cloud-foundry-containers-warden-docker-and-garden-v1.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"331\" \/>\n\t<meta property=\"og:image:height\" content=\"360\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Maksim Zhylinski\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Maksim Zhylinski\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/\",\"name\":\"Cloud Foundry Containers: Warden, Docker, and Garden | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2015\/09\/cloud-foundry-containers-warden-docker-and-garden-v1.gif\",\"datePublished\":\"2015-09-16T18:10:52+00:00\",\"dateModified\":\"2019-08-08T11:53:32+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/15723c38c3cbfaf8b825ffd187aa557c\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2015\/09\/cloud-foundry-containers-warden-docker-and-garden-v1.gif\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2015\/09\/cloud-foundry-containers-warden-docker-and-garden-v1.gif\",\"width\":331,\"height\":360},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cloud Foundry Containers: Warden, Docker, and Garden\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\",\"url\":\"https:\/\/www.altoros.com\/blog\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.altoros.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/15723c38c3cbfaf8b825ffd187aa557c\",\"name\":\"Maksim Zhylinski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/11\/901.jpg\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/11\/901.jpg\",\"caption\":\"Maksim Zhylinski\"},\"description\":\"Maksim Zhylinski is a Cloud Foundry Engineer at Altoros. He is an expert in cloud computing, networking, and Cloud Foundry BOSH, having worked on multiple BOSH CPIs, releases, and service brokers. Maksim has 6+ years of experience in everything Ruby, JavaScript, and Go, as well as extensive skills in server and client-side web application development. He is an active member of Ruby and Go communities and a frequent contributor to various open-source projects.\",\"url\":\"https:\/\/www.altoros.com\/blog\/author\/maksim-zhylinski\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cloud Foundry Containers: Warden, Docker, and Garden | Altoros","description":"This blog post compares Warden and Docker across implementation, differences\/similarities, and their interaction with Garden.","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:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/","og_locale":"en_US","og_type":"article","og_title":"Cloud Foundry Containers: Warden, Docker, and Garden | Altoros","og_description":"Warden is a container implementation currently used in Cloud Foundry. At the same time, Docker is another option to easily and efficiently manage containers. That\u2019s why a lot has been made to enable Docker in the Diego runtime. In addition to a brief comparison of Warden and Docker, we will also [...]","og_url":"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/","og_site_name":"Altoros","article_published_time":"2015-09-16T18:10:52+00:00","article_modified_time":"2019-08-08T11:53:32+00:00","og_image":[{"width":331,"height":360,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2015\/09\/cloud-foundry-containers-warden-docker-and-garden-v1.gif","type":"image\/gif"}],"author":"Maksim Zhylinski","twitter_misc":{"Written by":"Maksim Zhylinski","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/","url":"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/","name":"Cloud Foundry Containers: Warden, Docker, and Garden | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2015\/09\/cloud-foundry-containers-warden-docker-and-garden-v1.gif","datePublished":"2015-09-16T18:10:52+00:00","dateModified":"2019-08-08T11:53:32+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/15723c38c3cbfaf8b825ffd187aa557c"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2015\/09\/cloud-foundry-containers-warden-docker-and-garden-v1.gif","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2015\/09\/cloud-foundry-containers-warden-docker-and-garden-v1.gif","width":331,"height":360},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/cloud-foundry-containers-warden-docker-and-garden\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Cloud Foundry Containers: Warden, Docker, and Garden"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/15723c38c3cbfaf8b825ffd187aa557c","name":"Maksim Zhylinski","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/11\/901.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/11\/901.jpg","caption":"Maksim Zhylinski"},"description":"Maksim Zhylinski is a Cloud Foundry Engineer at Altoros. He is an expert in cloud computing, networking, and Cloud Foundry BOSH, having worked on multiple BOSH CPIs, releases, and service brokers. Maksim has 6+ years of experience in everything Ruby, JavaScript, and Go, as well as extensive skills in server and client-side web application development. He is an active member of Ruby and Go communities and a frequent contributor to various open-source projects.","url":"https:\/\/www.altoros.com\/blog\/author\/maksim-zhylinski\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/45862","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/76"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=45862"}],"version-history":[{"count":9,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/45862\/revisions"}],"predecessor-version":[{"id":45877,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/45862\/revisions\/45877"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/45876"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=45862"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=45862"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=45862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}