{"id":149,"date":"2016-01-03T17:48:55","date_gmt":"2016-01-03T16:48:55","guid":{"rendered":"https:\/\/blog.mi.hdm-stuttgart.de\/?p=149"},"modified":"2023-06-07T11:29:53","modified_gmt":"2023-06-07T09:29:53","slug":"more-docker-more-power-part-1-setting-up-virtualbox","status":"publish","type":"post","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/01\/03\/more-docker-more-power-part-1-setting-up-virtualbox\/","title":{"rendered":"More docker = more power? \u2013 Part 1: Setting up VirtualBox"},"content":{"rendered":"<p>This series of blogposts will focus on the effects on response times when performing different tasks running on a variable number of docker containers in a virtual machine.<br \/>\nWhat will be the performance differences running a small or large number of containers on the same machine? These posts will function as a step-by-step tutorial, enabling everyone to reproduce our studies.<br \/>\nIn production one of the most scaled services are webservers. Therefore, we want to focus on stress testing a self hosted website that is being load balanced and running in a varying number of Docker containers.<\/p>\n<p><!--more--><\/p>\n<p>We will be using two virtual machines running Ubuntu 14.04 LTS within VirtualBox (version 5.0.10 r104061). One functions as the loadbalancer whereas the other houses the services.<br \/>\nThe loadbalancer is set up without Docker, since it would create additional overhead and we don\u2019t want to scale up to multiple balancers. The service machine runs a varying number of Docker containers that provide the service.<\/p>\n<p><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-03-at-17.21.01.png\" rel=\"attachment wp-att-150\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"150\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/01\/03\/more-docker-more-power-part-1-setting-up-virtualbox\/screen-shot-2016-01-03-at-17-21-01\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-03-at-17.21.01.png\" data-orig-size=\"496,305\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Docker Diagram\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-03-at-17.21.01.png\" class=\" wp-image-150 aligncenter\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-03-at-17.21.01-300x184.png\" alt=\"Docker Diagram\" width=\"510\" height=\"313\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-03-at-17.21.01-300x184.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-03-at-17.21.01.png 496w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n<p>First of all, download Ubuntu and install it on both virtual machines. A tutorial on how to do that can be found <a href=\"http:\/\/www.psychocats.net\/ubuntu\/virtualbox\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">here<\/span><\/a>. Then, we have to make sure the two machines can communicate with each other. Normally, it is sufficient to just put them into the same network by creating a network bridge to attach them to your local network:<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">right click the virtual machine<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">got to settings \u2192 network<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">select \u2018bridge adapter\u2019 within the \u2018attached to\u2019 dropdown menu<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">repeat the first three steps for the second machine<\/span><\/li>\n<\/ul>\n<p>However, during our studies we were connected to the eduroam network of our university, which makes the setup slightly more complicated because you won\u2019t get a DHCP address for your virtual machines.<\/p>\n<p>Therefore, you have to create two network adapters. The first is configured as a NAT interface, which connects over your local PC to the internet. The second one is configured as an internal network to allow communication between the VMs.<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">goto VirtualBox settings \u2192 network <\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">create a new NatNetwork (the name doesn\u2019t matter)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">create a new Host-Only Network (the name doesn\u2019t matter)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">right click <\/span><span style=\"font-weight: 400;\">each<\/span><span style=\"font-weight: 400;\"> virtual machine and goto settings \u2192 network<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">set adapter 1 to \u201cNAT Network\u201d and select the created NatNetwork<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">set adapter 2 to \u201cHost-only Adapter\u201d and select the created Host-only Network<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">launch your virtual machines and edit your network interface configuration:<\/span>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">get your local ip using <\/span><span style=\"font-weight: 400;\"><code class=\"\" data-line=\"\">ip a <\/code><\/span><span style=\"font-weight: 400;\">(e.g. 192.168.1.80)<\/span><\/li>\n<li style=\"font-weight: 400;\"><code class=\"\" data-line=\"\">sudo vi \/etc\/network\/interfaces<\/code><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">insert the following text at the bottom:<\/span><br \/>\n<span style=\"font-weight: 400;\"><code class=\"\" data-line=\"\">auto eth1<\/code><\/span><br \/>\n<span style=\"font-weight: 400;\"><code class=\"\" data-line=\"\">iface eth1 inet static<\/code><\/span><br \/>\n<span style=\"font-weight: 400;\"><code class=\"\" data-line=\"\">address &lt;your ip&gt;<\/code><\/span><br \/>\n<span style=\"font-weight: 400;\"><code class=\"\" data-line=\"\">netmask &lt;your netmask&gt;<\/code><\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">to apply the changes, restart your virtual machines and type <\/span><span style=\"font-weight: 400;\">ip a <\/span><span style=\"font-weight: 400;\">to see if the changes took effect<\/span><\/li>\n<\/ul>\n<p>In the next post we will look at setting up nginx and Docker. Klick here to go the the next Part: <a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/01\/07\/more-docker-more-power-part-2-setting-up-nginx-and-docker\/\">https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/01\/07\/more-docker-more-power-part-2-setting-up-nginx-and-docker\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This series of blogposts will focus on the effects on response times when performing different tasks running on a variable number of docker containers in a virtual machine. What will be the performance differences running a small or large number of containers on the same machine? These posts will function as a step-by-step tutorial, enabling [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":182,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[651,2,657],"tags":[3,4,11,10],"ppma_author":[688],"class_list":["post-149","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-system-designs","category-system-engineering","category-teaching-and-learning","tag-docker","tag-linux","tag-loadbalancing","tag-virtualbox"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/01\/1429543497dockerimg.png","jetpack-related-posts":[{"id":170,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/01\/07\/more-docker-more-power-part-2-setting-up-nginx-and-docker\/","url_meta":{"origin":149,"position":0},"title":"More docker = more power? \u2013 Part 2: Setting up Nginx and Docker","author":"Moritz Lottermann","date":"7. January 2016","format":false,"excerpt":"This is Part 2 of a series of posts. You can find Part 1 here:\u00a0https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/01\/03\/more-docker-more-power-part-1-setting-up-virtualbox\/ In the first part of this series we have set up two VirtualBox machines. One functions as the load balancer and the other will house our services. As the next step we want to install\u2026","rel":"","context":"In &quot;System Designs&quot;","block_context":{"text":"System Designs","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/system-designs\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/01\/1429543497dockerimg.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/01\/1429543497dockerimg.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/01\/1429543497dockerimg.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/01\/1429543497dockerimg.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":27,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2015\/12\/17\/27\/","url_meta":{"origin":149,"position":1},"title":"Docker- dive into its foundations","author":"Benjamin Binder","date":"17. December 2015","format":false,"excerpt":"Docker has gained a lot of attention over the past several years.\u00a0But not only because of its cool logo or it being\u00a0the top buzzword of managers, but also because of its useful features.\u00a0We talked about Docker quite a bit without really\u00a0understanding why it's so\u00a0great to use. So we decided to\u2026","rel":"","context":"In &quot;Databases&quot;","block_context":{"text":"Databases","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/scalable-systems\/databases\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":5175,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2019\/02\/24\/benefiting-kubernetes-part-2-deploy-with-kubectl\/","url_meta":{"origin":149,"position":2},"title":"Migrating to Kubernetes Part 2 &#8211; Deploy with kubectl","author":"Can Kattwinkel","date":"24. February 2019","format":false,"excerpt":"Written by: Pirmin Gersbacher, Can Kattwinkel, Mario Sallat Migrating from Bare Metal to Kubernetes The interest in software containers is a relatively new trend in the developers world. Classic VMs have not lost their right to exist within a world full of monoliths yet, but the trend is clearly towards\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2019\/02\/pexels-photo-379964.jpeg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2019\/02\/pexels-photo-379964.jpeg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2019\/02\/pexels-photo-379964.jpeg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2019\/02\/pexels-photo-379964.jpeg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2019\/02\/pexels-photo-379964.jpeg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":1060,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/08\/06\/exploring-docker-security-part-1-the-whales-anatomy\/","url_meta":{"origin":149,"position":3},"title":"Exploring Docker Security &#8211; Part 1: The whale&#8217;s anatomy","author":"Patrick Kleindienst","date":"6. August 2016","format":false,"excerpt":"When it comes to Docker, most of us\u00a0immediately start thinking of current trends like Microservices, DevOps, fast deployment, or scalability. Without a doubt, Docker seems to hit the road towards establishing itself\u00a0as\u00a0the\u00a0de-facto standard for lightweight application containers, shipping not only with lots of features and tools, but also great usability.\u2026","rel":"","context":"In &quot;Secure Systems&quot;","block_context":{"text":"Secure Systems","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/system-designs\/secure-systems\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/ballena-de-alas-largas-240873.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/ballena-de-alas-largas-240873.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/ballena-de-alas-largas-240873.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/ballena-de-alas-largas-240873.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/ballena-de-alas-largas-240873.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/ballena-de-alas-largas-240873.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":1299,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/08\/16\/exploring-docker-security-part-2-container-flaws\/","url_meta":{"origin":149,"position":4},"title":"Exploring Docker Security &#8211; Part 2: Container flaws","author":"Patrick Kleindienst","date":"16. August 2016","format":false,"excerpt":"Now that we've understood the basics, this\u00a0second part will\u00a0cover the most relevant container threats, their possible impact as well as\u00a0existent countermeasures. Beyond that, a short overview\u00a0of the most important sources for container threats will be provided. I'm pretty sure you're not counting on most\u00a0of them. Want to know more? Container\u2026","rel":"","context":"In &quot;Secure Systems&quot;","block_context":{"text":"Secure Systems","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/system-designs\/secure-systems\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/article-1301858-0ABD7881000005DC-365_964x543.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/article-1301858-0ABD7881000005DC-365_964x543.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/article-1301858-0ABD7881000005DC-365_964x543.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/article-1301858-0ABD7881000005DC-365_964x543.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1924,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2017\/02\/28\/microservices-legolizing-software-development-4\/","url_meta":{"origin":149,"position":5},"title":"Microservices \u2013 Legolizing Software Development IV","author":"Calieston Varatharajah, Christof Kost, Korbinian Kuhn, Marc Schelling, Steffen Mauser","date":"28. February 2017","format":false,"excerpt":"An automated development environment will save you. We explain how we set up Jenkins, Docker and Git to work seamlessly together.","rel":"","context":"In &quot;System Designs&quot;","block_context":{"text":"System Designs","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/system-designs\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/02\/draw_io_docker_small-1024x439.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/02\/draw_io_docker_small-1024x439.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/02\/draw_io_docker_small-1024x439.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]}],"jetpack_sharing_enabled":true,"authors":[{"term_id":688,"user_id":8,"is_guest":0,"slug":"ts144","display_name":"Tobias Schneider","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70f05efe954847d5dc6a4258b188ef70b9eb4bbcb9685346bfe9f02979342ed8?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/comments?post=149"}],"version-history":[{"count":19,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/149\/revisions"}],"predecessor-version":[{"id":24645,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/149\/revisions\/24645"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/media\/182"}],"wp:attachment":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/media?parent=149"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/categories?post=149"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/tags?post=149"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/ppma_author?post=149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}