{"id":74171,"date":"2018-02-27T15:59:00","date_gmt":"2018-02-27T13:59:00","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/?p=74171"},"modified":"2023-12-11T10:34:50","modified_gmt":"2023-12-11T08:34:50","slug":"docker-tutorial-java-developers","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html","title":{"rendered":"Docker Tutorial for Java Developers"},"content":{"rendered":"<h2>Course Overview<\/h2>\n<p>Docker is a computer program that performs operating-system-level virtualization also known as containerization. It is developed by Docker, Inc. Docker is primarily developed for Linux, where it uses the resource isolation features of the Linux kernel such as cgroups and kernel namespaces, and a union-capable file system such as OverlayFS and others to allow independent &#8220;containers&#8221; to run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines (VMs).<\/p>\n<p>The Linux kernel&#8217;s support for namespaces mostly isolates an application&#8217;s view of the operating environment, including process trees, network, user IDs and mounted file systems, while the kernel&#8217;s cgroups provide resource limiting, including the CPU, memory, block I\/O, and network. Since version 0.9, Docker includes the libcontainer library as its own way to directly use virtualization facilities provided by the Linux kernel, in addition to using abstracted virtualization interfaces via libvirt, LXC and systemd-nspawn. (Source: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Docker_(software)\">Wikipedia<\/a>)<\/p>\n<p>In this course, we provide a series of tutorials so that you can develop your own Docker based applications. We cover a wide range of topics, from Docker over command line, to development, testing, deployment and continuous integration. With our straightforward tutorials, you will be able to get your own projects up and running in minimum time.<\/p>\n<h2>Author Overview<\/h2>\n<p>Andriy completed his Master Degree in Computer Science at Zhitomir Institute of Engineering and Technologies, Ukraine. For the last fifteen years he has been working as the Consultant\/Software Developer\/Senior Software Developer\/Team Lead for a many successful projects including several huge software systems for customers from North America and Europe.<\/p>\n<p>Through his career Andriy has gained a great experience in enterprise architecture, web development (ASP.NET, Java Server Faces, Play Framework), software development practices (test-driven development, continious integration) and software platforms (Sun JEE, Microsoft .NET), object-oriented analysis and design, development of the rich user interfaces (MFC, Swing, Windows Forms\/WPF), relational database management systems (MySQL, SQL Server, PostgreSQL, Oracle), NoSQL solutions (MongoDB, Redis) and operating systems (Linux\/Windows).<\/p>\n<p>Andriy has a great experience in development of distributed (multi-tier) software systems, multi-threaded applications, desktop applications, service-oriented architecture and rich Internet applications. Since 2006 he is actively working primarily with JEE \/ JSE platforms.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>As a professional he is always open to continuous learning and self-improvement to be more productive in the job he is really passionate about.<\/p>\n<h2>Lessons<\/h2>\n<h3 class=\"name post-title entry-title\"><a href=\"https:\/\/www.javacodegeeks.com\/2017\/08\/docker-java-developers-introduction.html\">Introduction<\/a><\/h3>\n<p>If you have not heard about <a href=\"https:\/\/www.docker.com\/\">Docker<\/a>, then you have probably spent the last few years on some other planet of the Solar system. <a href=\"https:\/\/www.docker.com\/\">Docker<\/a> stormed into our industry and in no time dramatically changed many well-established software development and operational practices and patterns. These days pretty much every organization is using <a href=\"https:\/\/www.docker.com\/\">Docker<\/a> (or equivalent of it), the brave ones even in production, and its adoption is growing at fantastic pace.<\/p>\n<h3 class=\"name post-title entry-title\"><a href=\"https:\/\/www.javacodegeeks.com\/2017\/09\/docker-java-developers-docker-command-line.html\">Docker over command line<\/a><\/h3>\n<p>In this section of the tutorial we are going to master the Swiss army knife of <a href=\"https:\/\/www.docker.com\/\">Docker<\/a>, its command line tool of the same name <a href=\"https:\/\/docs.docker.com\/engine\/reference\/commandline\/cli\/\">docker<\/a> and its best friend <a href=\"https:\/\/docs.docker.com\/compose\/reference\/overview\/\">docker-compose<\/a>. To give these tools some credit, each of them supports myriads of different command line arguments and options so discussing all of them would make this section literally endless. Instead, we would be focusing on most useful classes of the commands, pointing to the relevant sections of the documentation in case you would like to learn more right away.<\/p>\n<h3 class=\"name post-title entry-title\"><a href=\"https:\/\/www.javacodegeeks.com\/2017\/10\/docker-java-developers-docker-http-rest.html\">Docker over HTTP\/REST<\/a><\/h3>\n<p>From the previous parts of the tutorial we already know that <a href=\"https:\/\/www.docker.com\/\">Docker<\/a> not only has an awesome command line tooling, but exposes a feature-rich <a href=\"https:\/\/docs.docker.com\/engine\/api\/\">Docker Engine API<\/a> as well. As of now, the officially supported clients are provided for Go and Python languages. Certainly, not very encouraging news for Java developer, but there is a light at the end of the tunnel.<\/p>\n<h3 class=\"name post-title entry-title\"><a href=\"https:\/\/www.javacodegeeks.com\/2017\/11\/docker-java-developers-build-docker.html\">Build on Docker<\/a><\/h3>\n<p>Over the first few parts of the tutorial we went through basics of the <a href=\"https:\/\/www.docker.com\/\">Docker<\/a> and the multitude of the ways to interface with it. It is time to apply the knowledge we have acquired to real-world Java projects, starting the discussion from the topic of how <a href=\"https:\/\/www.docker.com\/\">Docker<\/a> affects the well-established build processes and practices.<\/p>\n<h3 class=\"name post-title entry-title\"><a href=\"https:\/\/www.javacodegeeks.com\/2017\/12\/docker-java-developers-develop-docker.html\">Develop on Docker<\/a><\/h3>\n<p>In the <a href=\"https:\/\/www.javacodegeeks.com\/2017\/11\/docker-java-developers-build-docker.html\">last part of the tutorial<\/a> we learned a number of ways to package (and run) Java applications as <a href=\"https:\/\/www.docker.com\/\">Docker<\/a> containers. In this part we are going to focus more on how <a href=\"https:\/\/www.docker.com\/\">Docker<\/a> impacts our development practices in a quite positive ways.<\/p>\n<h3 class=\"name post-title entry-title\"><a href=\"https:\/\/www.javacodegeeks.com\/2018\/01\/docker-java-developers-test-docker.html\">Test on Docker<\/a><\/h3>\n<p>If we think about the areas of software engineering where the impact of the <a href=\"https:\/\/www.docker.com\/\">Docker<\/a> and container-based virtualization is most noticeable, testing and test automation is certainly one of those. As the software systems become more and more complex, so do the software stacks they are built upon, with many moving parts involved.<\/p>\n<h3 class=\"name post-title entry-title\"><a href=\"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-java-developers-deploy-docker.html\">Deploy on Docker<\/a><\/h3>\n<p>[ulp id=&#8217;MD25RnPuC2vrVItl&#8217;]<br \/>\n&nbsp;<br \/>\nMany companies have been using container-based virtualization to deploy applications (including JVM based ones) in production way before <a href=\"https:\/\/www.docker.com\/\">Docker<\/a> appearance on the horizon. However, primarily because of <a href=\"https:\/\/www.docker.com\/\">Docker<\/a>, deployment practices using containers turned into the mainstream these days.<\/p>\n<h3 class=\"name post-title entry-title\"><a href=\"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-java-developers-continuous-integration-docker.html\">Continuous Integration on Docker<\/a><\/h3>\n<p>Along this tutorial we have seen how <a href=\"https:\/\/www.docker.com\/\">Docker<\/a> penetrated into every aspect of the typical <a href=\"https:\/\/www.java.com\/en\/\">Java<\/a> application lifecycle: build, development, testing and deployment. In this part we are going to focus on the one of the increasingly important topics of continuous integration.<\/p>\n<p>Make sure to retweet this, let your social followers know!<\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"500\" data-dnt=\"true\">\n<p lang=\"ca\" dir=\"ltr\">Docker Tutorial for Java Developers &#8211; DevOps Docker <a href=\"https:\/\/t.co\/WnusoKOGSo\">https:\/\/t.co\/WnusoKOGSo<\/a><\/p>\n<p>&mdash; Java Code Geeks (@javacodegeeks) <a href=\"https:\/\/twitter.com\/javacodegeeks\/status\/968494702361116673?ref_src=twsrc%5Etfw\">February 27, 2018<\/a><\/p>\n<\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Course Overview Docker is a computer program that performs operating-system-level virtualization also known as containerization. It is developed by Docker, Inc. Docker is primarily developed for Linux, where it uses the resource isolation features of the Linux kernel such as cgroups and kernel namespaces, and a union-capable file system such as OverlayFS and others to &hellip;<\/p>\n","protected":false},"author":141,"featured_media":24013,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[936],"class_list":["post-74171","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-docker"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Docker Tutorial for Java Developers - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Course Overview Docker is a computer program that performs operating-system-level virtualization also known as containerization. It is developed by\" \/>\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.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker Tutorial for Java Developers - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Course Overview Docker is a computer program that performs operating-system-level virtualization also known as containerization. It is developed by\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-27T13:59:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-11T08:34:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/docker-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Andrey Redko\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andrey Redko\" \/>\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\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/02\\\/docker-tutorial-java-developers.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/02\\\/docker-tutorial-java-developers.html\"},\"author\":{\"name\":\"Andrey Redko\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/771a6504862edc45322776832cbce413\"},\"headline\":\"Docker Tutorial for Java Developers\",\"datePublished\":\"2018-02-27T13:59:00+00:00\",\"dateModified\":\"2023-12-11T08:34:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/02\\\/docker-tutorial-java-developers.html\"},\"wordCount\":895,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/02\\\/docker-tutorial-java-developers.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2014\\\/04\\\/docker-logo.jpg\",\"keywords\":[\"Docker\"],\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/02\\\/docker-tutorial-java-developers.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/02\\\/docker-tutorial-java-developers.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/02\\\/docker-tutorial-java-developers.html\",\"name\":\"Docker Tutorial for Java Developers - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/02\\\/docker-tutorial-java-developers.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/02\\\/docker-tutorial-java-developers.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2014\\\/04\\\/docker-logo.jpg\",\"datePublished\":\"2018-02-27T13:59:00+00:00\",\"dateModified\":\"2023-12-11T08:34:50+00:00\",\"description\":\"Course Overview Docker is a computer program that performs operating-system-level virtualization also known as containerization. It is developed by\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/02\\\/docker-tutorial-java-developers.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/02\\\/docker-tutorial-java-developers.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/02\\\/docker-tutorial-java-developers.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2014\\\/04\\\/docker-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2014\\\/04\\\/docker-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/02\\\/docker-tutorial-java-developers.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/devops\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Docker Tutorial for Java Developers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/771a6504862edc45322776832cbce413\",\"name\":\"Andrey Redko\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/16419ce8394173028eddaeb992859862bab50cfcf74589fa9bb9a3dd8bb27518?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/16419ce8394173028eddaeb992859862bab50cfcf74589fa9bb9a3dd8bb27518?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/16419ce8394173028eddaeb992859862bab50cfcf74589fa9bb9a3dd8bb27518?s=96&d=mm&r=g\",\"caption\":\"Andrey Redko\"},\"description\":\"Andriy is a well-grounded software developer with more then 12 years of practical experience using Java\\\/EE, C#\\\/.NET, C++, Groovy, Ruby, functional programming (Scala), databases (MySQL, PostgreSQL, Oracle) and NoSQL solutions (MongoDB, Redis).\",\"sameAs\":[\"http:\\\/\\\/aredko.blogspot.com\\\/\",\"http:\\\/\\\/ca.linkedin.com\\\/in\\\/aredko\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/andrey-redko\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Docker Tutorial for Java Developers - Java Code Geeks","description":"Course Overview Docker is a computer program that performs operating-system-level virtualization also known as containerization. It is developed by","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.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html","og_locale":"en_US","og_type":"article","og_title":"Docker Tutorial for Java Developers - Java Code Geeks","og_description":"Course Overview Docker is a computer program that performs operating-system-level virtualization also known as containerization. It is developed by","og_url":"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2018-02-27T13:59:00+00:00","article_modified_time":"2023-12-11T08:34:50+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/docker-logo.jpg","type":"image\/jpeg"}],"author":"Andrey Redko","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Andrey Redko","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html"},"author":{"name":"Andrey Redko","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/771a6504862edc45322776832cbce413"},"headline":"Docker Tutorial for Java Developers","datePublished":"2018-02-27T13:59:00+00:00","dateModified":"2023-12-11T08:34:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html"},"wordCount":895,"commentCount":2,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/docker-logo.jpg","keywords":["Docker"],"articleSection":["DevOps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html","url":"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html","name":"Docker Tutorial for Java Developers - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/docker-logo.jpg","datePublished":"2018-02-27T13:59:00+00:00","dateModified":"2023-12-11T08:34:50+00:00","description":"Course Overview Docker is a computer program that performs operating-system-level virtualization also known as containerization. It is developed by","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/docker-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/docker-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2018\/02\/docker-tutorial-java-developers.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/www.javacodegeeks.com\/category\/devops"},{"@type":"ListItem","position":3,"name":"Docker Tutorial for Java Developers"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/771a6504862edc45322776832cbce413","name":"Andrey Redko","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/16419ce8394173028eddaeb992859862bab50cfcf74589fa9bb9a3dd8bb27518?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/16419ce8394173028eddaeb992859862bab50cfcf74589fa9bb9a3dd8bb27518?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/16419ce8394173028eddaeb992859862bab50cfcf74589fa9bb9a3dd8bb27518?s=96&d=mm&r=g","caption":"Andrey Redko"},"description":"Andriy is a well-grounded software developer with more then 12 years of practical experience using Java\/EE, C#\/.NET, C++, Groovy, Ruby, functional programming (Scala), databases (MySQL, PostgreSQL, Oracle) and NoSQL solutions (MongoDB, Redis).","sameAs":["http:\/\/aredko.blogspot.com\/","http:\/\/ca.linkedin.com\/in\/aredko"],"url":"https:\/\/www.javacodegeeks.com\/author\/andrey-redko"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/74171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/141"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=74171"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/74171\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/24013"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=74171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=74171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=74171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}