{"id":512586,"date":"2017-02-24T09:56:13","date_gmt":"2017-02-24T08:56:13","guid":{"rendered":"https:\/\/www.devoteam.com\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/"},"modified":"2017-02-24T09:56:13","modified_gmt":"2017-02-24T08:56:13","slug":"a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker","status":"publish","type":"expert-view","link":"https:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/","title":{"rendered":"A beginner\u2019s guide to shipping monkeys, bananas and trucks\u2026 with Docker"},"content":{"rendered":"<p><!--more--><\/p>\n<p><span style=\"font-weight: 400\">Docker manages something called containers. In order for us to understand what containers are and when they can be of use in <\/span><i><span style=\"font-weight: 400\">your<\/span><\/i><span style=\"font-weight: 400\"> IT infrastructure, we can take a look at the options a company has to deploy its applications. In a nutshell the 3 options are:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Physical servers<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Virtual machines<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Containers<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">We only mention physical servers briefly for completeness.<\/span><\/p>\n<h4>Physical Servers<\/h4>\n<p><a href=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-2282 aligncenter\" src=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1-300x255.png\" alt=\"\" width=\"300\" height=\"255\" \/><\/a><\/p>\n<p>Imagine you want to get some products shipped over to you, these products are bananas, monkeys and trucks. You don\u2019t want to put the bananas, monkeys and trucks all together, unstructured, on the boat, since the monkeys could eat the bananas, and in heavy weather the trucks could roll over the monkeys! You could get 3 boats though.<\/p>\n<p>You\u2019d have everything needed to get the products from A to B, but paying for 3 complete boats is a huge waste of resources. You know that all bananas, monkeys and trucks could fit on the same boat, they just need to be isolated from each other.<\/p>\n<p><span style=\"font-weight: 400\">Of course nobody in their right mind would do that. Unfortunately the same cannot be said when deploying applications. In the past (and probably sometimes still today), applications would get deployed to dedicated physical servers. Since those IT departments had no idea how big\/fast the servers had to be, they usually played it safe and got servers that are way too big\/fast for their needs, which ended up wasting a lot of resources. Each server had 1 application running on it, since the applications needed to be isolated from each other due to dependency versioning and other conflicts that might occur. <\/span><\/p>\n<h4>Virtual Machines<\/h4>\n<p style=\"text-align: center\"><a href=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/virtual-machine-icon-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2283\" src=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/virtual-machine-icon-1-300x221.png\" alt=\"\" width=\"300\" height=\"221\" \/><\/a><\/p>\n<p>A better option would be to put the monkeys, bananas and trucks in a separate storage room. This way they are isolated from each other so that the monkeys can\u2019t eat the bananas and the trucks won\u2019t roll over the monkeys. Sadly, every storage room is also fitted with windows, furniture and a bathroom, things only the monkeys might need. Even worse is, because the storage rooms have so much overhead, the ship only has 2 of them, which means you need to find another ship for your trucks.<\/p>\n<p>Even though this is a better option, you\u2019re still using more storage space than you need. This option can be compared to Virtual Machines. A VM emulates a server, and the main pro is that you can have multiple VM\u2019s run on one server. This way you can have each VM run an application and have several VM\u2019s on one server. A big con though is that a lot of overhead is added, a VM emulates a full blown server, with a complete OS and programs that you might not even need to run your applications.<\/p>\n<h4>Docker &amp; containers<\/h4>\n<p><span style=\"font-weight: 400\"><br \/>\nThen you think of the obvious choice, why can\u2019t I just have my bananas, monkeys and trucks shipped in separate small shipping containers, fit with only the things each \u201cproduct\u201d needs? This way I\u2019m only using the space I really need. Nobody on the ship even cares what\u2019s inside the containers, all they care about is the space the container takes. Just like the storage rooms, everything is isolated from each other. Since containers use space much more efficiently, there\u2019s even room for other containers on the ship. If someone wants to put his coconuts in a container, next to mine, that\u2019s fine, my monkeys won\u2019t eat them since they don\u2019t even know that there\u2019s a container full of coconuts standing next to them. <\/span><\/p>\n<p><span style=\"font-weight: 400\">In the IT world this solution is also called a container. A container is a self-contained mini-server that only has the bare minimum amount of software installed on it in order to do its job. <\/span><a href=\"https:\/\/www.docker.com\/\"><span style=\"font-weight: 400\">Docker <\/span><\/a><span style=\"font-weight: 400\">is a piece of software that manages these containers. Another good thing about containers is that they\u2019re \u201clift and shift\u201d-able, this means that you can take your container, run it on any other docker host<\/span><span style=\"font-weight: 400\"> and it will behave exactly the same. You shouldn\u2019t even care which server it runs on! Since containers only contain the bare metal, they\u2019re also a lot smaller than VM\u2019s. \u00a0As you can see there are some similarities between containers and VMs, such as isolation and the fact that you don\u2019t use up all the resources of the server for 1 application.<\/span><\/p>\n<p>In other areas containers have some distinct advantages over a VM:<\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">They\u2019re cheaper, since they\u2019re using less resources <\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">They start faster, containers can usually start in under a second where a VM can take minutes<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">They\u2019re \u201clift and shift\u201d-able, you shouldn\u2019t even care on which server your containers run since they will look, feel and smell exactly the same.<\/span><\/li>\n<\/ul>\n<p style=\"text-align: center\"><a href=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/docker-icon-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2285\" src=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/docker-icon-1-300x268.png\" alt=\"\" width=\"300\" height=\"268\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400\">Please note that while the use-cases for containers and VMs overlap, they\u2019re not 100% the same.<\/span><\/p>\n<p><span style=\"font-weight: 400\"><a href=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/google-container-registry-icon-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2284 alignleft\" src=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/google-container-registry-icon-1.png\" alt=\"\" width=\"256\" height=\"256\" \/><\/a>Of course you don\u2019t always have to create your containers from the ground up. That\u2019s why there are online repositories. Repositories can be public or private and are the shopping market in the container world, only (almost) everything is free here! If you have an idea for a container, there\u2019s a good chance someone has already put it out there so that all you have to do is download it. Once you\u2019ve downloaded it you can use it you can tweak it if it doesn\u2019t completely fit your needs and then upload and reshare it with the world through the repository. The most popular and \u201cofficial\u201d repository is <\/span><a href=\"https:\/\/hub.docker.com\/\"><span style=\"font-weight: 400\">Dockerhub<\/span><\/a><span style=\"font-weight: 400\">, though there are many others out there, such as <\/span><a href=\"https:\/\/cloud.google.com\/container-registry\/\"><span style=\"font-weight: 400\">Google Container Registry<\/span><\/a><span style=\"font-weight: 400\">, the container registry solution on GCP.<\/span><\/p>\n<p><span style=\"font-weight: 400\">What if you want to have several different containers coordinating between each other? Well, for that you could use <\/span><a href=\"http:\/\/kubernetes.io\/\"><span style=\"font-weight: 400\">Kubernetes<\/span><\/a><span style=\"font-weight: 400\">, but that\u2019s a story for another time\u2026<\/span><br \/>\n<span style=\"font-weight: 400\">If you want to find out more about containers and what they could mean for yourself or your business, feel free to join us at the <\/span><span style=\"font-weight: 400\">Google Cloud IaaS event<\/span><span style=\"font-weight: 400\"> on the 28th of March!<\/span><\/p>\n<p><a href=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/unnamed-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2286 aligncenter\" src=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/unnamed-1-300x57.png\" alt=\"\" width=\"563\" height=\"107\" \/><\/a><\/p>\n<p><em>Written by Robin Hellemans<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"featured_media":310772,"template":"","categories":[],"tags":[2286],"industry":[],"class_list":["post-512586","expert-view","type-expert-view","status-publish","has-post-thumbnail","hentry","tag-google-cloud-en-se"],"acf":[],"cards":"\n\t<div class=\"single-post-card\">\n\n\t\t<figure class=\"wp-block-post-featured-image\"><a href=\"https:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/\" target=\"_self\" ><img width=\"502\" height=\"426\" src=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1.png\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"A beginner\u2019s guide to shipping monkeys, bananas and trucks\u2026 with Docker\" style=\"aspect-ratio:4\/3;width:100%;object-fit:cover;\" decoding=\"async\" loading=\"lazy\" srcset=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1.png 502w, https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1-300x255.png 300w\" sizes=\"auto, (max-width: 502px) 100vw, 502px\" \/><\/a><\/figure>\n\n\t\t\n\t\t<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-43282307 wp-block-group-is-layout-flex\">\n\t<p style=\"font-style:normal;font-weight:700\" class=\"has-link-color wp-elements-1 wp-block-lp-post-type has-text-color has-primary-color has-small-font-size\">Expert View<\/p>\n\n\t\t\n\t\t<h3 style=\"font-style:normal;font-weight:400\" class=\"wp-block-post-title has-base-font-size\"><a href=\"https:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/\" target=\"_self\" >A beginner\u2019s guide to shipping monkeys, bananas and trucks\u2026 with Docker<\/a><\/h3><\/div>\n\t\t\n\t<\/div>\n\n","yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.4 (Yoast SEO v28.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>A beginner\u2019s guide to shipping monkeys, bananas and trucks\u2026 with Docker | Devoteam<\/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:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A beginner\u2019s guide to shipping monkeys, bananas and trucks\u2026 with Docker\" \/>\n<meta property=\"og:url\" content=\"https:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/\" \/>\n<meta property=\"og:site_name\" content=\"Devoteam\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-se\\\/expert-view\\\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\\\/\",\"url\":\"https:\\\/\\\/devoteam.info\\\/en-se\\\/expert-view\\\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\\\/\",\"name\":\"A beginner\u2019s guide to shipping monkeys, bananas and trucks\u2026 with Docker | Devoteam\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-se\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-se\\\/expert-view\\\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-se\\\/expert-view\\\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/devoteam.info\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/physical-server-1.png\",\"datePublished\":\"2017-02-24T08:56:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-se\\\/expert-view\\\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\\\/#breadcrumb\"},\"inLanguage\":\"en-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/devoteam.info\\\/en-se\\\/expert-view\\\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-SE\",\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-se\\\/expert-view\\\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\\\/#primaryimage\",\"url\":\"https:\\\/\\\/devoteam.info\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/physical-server-1.png\",\"contentUrl\":\"https:\\\/\\\/devoteam.info\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/physical-server-1.png\",\"width\":502,\"height\":426},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-se\\\/expert-view\\\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/devoteam.info\\\/en-se\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Expert View\",\"item\":\"https:\\\/\\\/devoteam.info\\\/en-se\\\/expert-view\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"A beginner\u2019s guide to shipping monkeys, bananas and trucks\u2026 with Docker\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-se\\\/#website\",\"url\":\"https:\\\/\\\/devoteam.info\\\/en-se\\\/\",\"name\":\"Devoteam\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/devoteam.info\\\/en-se\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-SE\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"A beginner\u2019s guide to shipping monkeys, bananas and trucks\u2026 with Docker | Devoteam","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:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/","og_locale":"en_US","og_type":"article","og_title":"A beginner\u2019s guide to shipping monkeys, bananas and trucks\u2026 with Docker","og_url":"https:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/","og_site_name":"Devoteam","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/","url":"https:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/","name":"A beginner\u2019s guide to shipping monkeys, bananas and trucks\u2026 with Docker | Devoteam","isPartOf":{"@id":"https:\/\/devoteam.info\/en-se\/#website"},"primaryImageOfPage":{"@id":"https:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/#primaryimage"},"image":{"@id":"https:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1.png","datePublished":"2017-02-24T08:56:13+00:00","breadcrumb":{"@id":"https:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/#breadcrumb"},"inLanguage":"en-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/"]}]},{"@type":"ImageObject","inLanguage":"en-SE","@id":"https:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/#primaryimage","url":"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1.png","contentUrl":"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1.png","width":502,"height":426},{"@type":"BreadcrumbList","@id":"https:\/\/devoteam.info\/en-se\/expert-view\/a-beginners-guide-to-shipping-monkeys-bananas-and-trucks-with-docker\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/devoteam.info\/en-se\/"},{"@type":"ListItem","position":2,"name":"Expert View","item":"https:\/\/devoteam.info\/en-se\/expert-view\/"},{"@type":"ListItem","position":3,"name":"A beginner\u2019s guide to shipping monkeys, bananas and trucks\u2026 with Docker"}]},{"@type":"WebSite","@id":"https:\/\/devoteam.info\/en-se\/#website","url":"https:\/\/devoteam.info\/en-se\/","name":"Devoteam","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/devoteam.info\/en-se\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-SE"}]}},"uagb_featured_image_src":{"full":["https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1.png",502,426,false],"thumbnail":["https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1-150x150.png",150,150,true],"medium":["https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1-300x255.png",300,255,true],"medium_large":["https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1.png",502,426,false],"large":["https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1.png",502,426,false],"1536x1536":["https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1.png",502,426,false],"2048x2048":["https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/physical-server-1.png",502,426,false]},"uagb_author_info":{"display_name":"no.ida","author_link":"https:\/\/devoteam.info\/en-se\/author\/"},"uagb_comment_info":0,"uagb_excerpt":null,"_links":{"self":[{"href":"https:\/\/devoteam.info\/en-se\/wp-json\/wp\/v2\/expert-view\/512586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devoteam.info\/en-se\/wp-json\/wp\/v2\/expert-view"}],"about":[{"href":"https:\/\/devoteam.info\/en-se\/wp-json\/wp\/v2\/types\/expert-view"}],"version-history":[{"count":0,"href":"https:\/\/devoteam.info\/en-se\/wp-json\/wp\/v2\/expert-view\/512586\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devoteam.info\/en-se\/wp-json\/wp\/v2\/media\/310772"}],"wp:attachment":[{"href":"https:\/\/devoteam.info\/en-se\/wp-json\/wp\/v2\/media?parent=512586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devoteam.info\/en-se\/wp-json\/wp\/v2\/categories?post=512586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devoteam.info\/en-se\/wp-json\/wp\/v2\/tags?post=512586"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/devoteam.info\/en-se\/wp-json\/wp\/v2\/industry?post=512586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}