{"id":28529,"date":"2019-06-12T00:00:00","date_gmt":"2019-06-11T22:00:00","guid":{"rendered":"https:\/\/blexin.com\/net-core-docker-e-kubernetes\/"},"modified":"2021-05-21T20:19:08","modified_gmt":"2021-05-21T18:19:08","slug":"net-core-docker-and-kubernetes","status":"publish","type":"post","link":"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/","title":{"rendered":".NET Core, Docker and Kubernetes"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"608\" data-attachment-id=\"28516\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/attachment\/3954d64b-7e17-41bc-be9f-0752eca4460a-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?fit=1024%2C608&amp;ssl=1\" data-orig-size=\"1024,608\" data-comments-opened=\"0\" 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=\"3954d64b-7e17-41bc-be9f-0752eca4460a\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?fit=300%2C178&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?fit=1024%2C608&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?resize=1024%2C608&#038;ssl=1\" alt=\"\" class=\"wp-image-28516\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a-980x582.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a-480x285.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In a previous article, we talked about the use of Docker containers for development purpose, underlining the advantages that the usage of the Containers can bring in the software development process. One of these advantages is the simplification of the deployment process because container images can be deployed in a simple way.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The good news is that we can use containers to host .NET Core applications, so that we can have fun with this technology using our Microsoft skills. Don\u2019t you trust me? Ok, follow these simple steps:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>If you have not installed .NET Core yet, install it from&nbsp;<a href=\"https:\/\/dotnet.microsoft.com\/download\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/dotnet.microsoft.com\/download<\/a><\/li><li>In the terminal create a folder, for example with the command mkdir demo, and move to the created folder with the command cd demo<\/li><li>Execute the command dotnet new webapi to create an API project from a preconfigured template provided by the .NET Core CLI (Command Line Interface)<\/li><li>Execute the command dotnet run to run the application on your machine<\/li><li>Open the browser to the address&nbsp;<strong><a href=\"https:\/\/localhost:5001\/api\/values\" rel=\"nofollow\">https:\/\/localhost:5001\/api\/values<\/a><\/strong><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If there are no errors, you will see the following result:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"877\" height=\"513\" data-attachment-id=\"28518\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/attachment\/image01-21-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-21.png?fit=877%2C513&amp;ssl=1\" data-orig-size=\"877,513\" data-comments-opened=\"0\" 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=\"image01-21\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-21.png?fit=300%2C175&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-21.png?fit=877%2C513&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-21.png?resize=877%2C513&#038;ssl=1\" alt=\"\" class=\"wp-image-28518\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-21.png 877w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-21-480x281.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 877px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This project is a simple example of a test API, but we can run this project in a Docker container creating a Dockerfile script in the application root with the following Docker commands:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\nFROM microsoft\/dotnet:sdk as build\nRUN mkdir app\nWORKDIR \/app\nCOPY . .\nRUN dotnet restore\nRUN dotnet publish -c Release -o out\n\u00a0\nFROM microsoft\/dotnet:aspnetcore-runtime\nWORKDIR \/app\nCOPY --from=build \/app\/out\/. .\nCMD dotnet demo.dll\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Starting from the official dotnet:sdk image by Microsoft, that contains all the .NET Core SDK needed for the compilation process, we create an \u201capp\u201d folder (RUN mkdir app) and use it as the working directory (WORKDIR \/app). This operation permits us to execute all next command to this folder. We copy all the content of the project to the container (COPY . .), restore the NUGET dependencies (RUN dotnet restore) and publish the application in a folder named \u201cout\u201d with the \u201cRelease\u201d configuration (RUN dotnet publish -c Release -o out). All these operations are part of a first step that we named \u201cbuild\u201d (FROM microsoft\/dotnet:sdk as build).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the second part of the script, we start from the ASP.NET Core runtime image by Microsoft, that contains only the runtime components to execute an ASP.NET Core application (FROM microsoft\/dotnet:aspnetcore-runtime). In this image, the app folder already exists, thus we only need to set it as working directory (WORKDIR \/app) and copy the result of the previous step from the \u201cout\u201d folder (COPY &#8211;from=build \/app\/out\/. .). When the final image runs, the container executes the dotnet command with the demo.dll file as a parameter, generated with the previous publish command (CMD dotnet demo.dll).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We are ready to create our image with the following command:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\ndocker build -t demo:1.0.0 .\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">The result of the command is the following:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"501\" height=\"665\" data-attachment-id=\"28521\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/attachment\/image02-20-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-20.png?fit=501%2C665&amp;ssl=1\" data-orig-size=\"501,665\" data-comments-opened=\"0\" 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=\"image02-20\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-20.png?fit=226%2C300&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-20.png?fit=501%2C665&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-20.png?resize=501%2C665&#038;ssl=1\" alt=\"\" class=\"wp-image-28521\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-20.png 501w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-20-480x637.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 501px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We can run the created image to test it with the command:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\ndocker run -it -p 80:80 demo:1.0.0\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">The result is the following:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"860\" height=\"470\" data-attachment-id=\"28524\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/attachment\/image03-18-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-18.png?fit=860%2C470&amp;ssl=1\" data-orig-size=\"860,470\" data-comments-opened=\"0\" 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=\"image03-18\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-18.png?fit=300%2C164&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-18.png?fit=860%2C470&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-18.png?resize=860%2C470&#038;ssl=1\" alt=\"\" class=\"wp-image-28524\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-18.png 860w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-18-480x262.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 860px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If the application is composed of more than one container, the process of deploy can be a little more complicated, because we need to manage the version of each container and the communication between them. To achieve this aim, the best solution is a container orchestrator, and today, this means Kubernetes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes, or K8s, is an open source container orchestrator started by Google and today maintained from Cloud Native Computing Foundation. You can use it in your on-premise infrastructure or with one of the leading cloud provider like Microsoft, Google, or Amazon. Once you understand basis principles and components behind Kubernetes, you can ask it to deploy your containers, to scale them as you want, to connect them depending on your requirements and security strategy, and update your application with the best strategy that fit your needs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are interested in Docker, Kubernetes and .NET Core and you want a practical guide to start working with these technologies, you can download the book that I have written for Syncfusion for free at the link&nbsp;<a href=\"https:\/\/www.syncfusion.com\/ebooks\/using-netcore-docker-and-kubernetes-succinctly\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.syncfusion.com\/ebooks\/using-netcore-docker-and-kubernetes-succinctly<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"502\" data-attachment-id=\"28526\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/attachment\/image04-16-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image04-16.png?fit=960%2C502&amp;ssl=1\" data-orig-size=\"960,502\" data-comments-opened=\"0\" 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=\"image04-16\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image04-16.png?fit=300%2C157&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image04-16.png?fit=960%2C502&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image04-16.png?resize=960%2C502&#038;ssl=1\" alt=\"\" class=\"wp-image-28526\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image04-16.png 960w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image04-16-480x251.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 960px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I have written this book with my typical practical approach, creating from zero a .NET Core application that uses a SQL Server Database, and using Docker both for development and production environment. After the creation of the image, I explain in details how to deploy the application on a Kubernetes cluster installed on our machine. In the last chapter, you can read how to deploy the same application on an AKS (Azure Kubernetes Service) cluster, customizing the data storage type to use the solutions offered by Azure and profit by the monitoring tools offered from the Microsoft Cloud.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Moreover, if you are in Naples, on 26th June, we have organized, with the Cloud Native Computing Foundation meetup of Naples, an evening to spend time together talking about these technologies, starting from a technical session on Docker, Kubernetes and Azure. All the details, here:&nbsp;<a href=\"https:\/\/www.meetup.com\/it-IT\/cncfnapoli\/events\/261921731\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.meetup.com\/it-IT\/cncfnapoli\/events\/261921731\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Happy coding!<\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>Using Docker and Kubernetes to deploy .NET Core applications to production<\/p>\n","protected":false},"author":196716248,"featured_media":28516,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_crdt_document":"","inline_featured_image":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false},"categories":[688637524],"tags":[688637416,688637546,688637463],"class_list":["post-28529","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-en","tag-asp-net-core-en","tag-docker-en","tag-kubernetes-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>.NET Core, Docker and Kubernetes - Blexin<\/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:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\".NET Core, Docker and Kubernetes - Blexin\" \/>\n<meta property=\"og:description\" content=\"Using Docker and Kubernetes to deploy .NET Core applications to production\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/\" \/>\n<meta property=\"og:site_name\" content=\"Blexin\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-11T22:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-21T18:19:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?fit=1024%2C608&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"608\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Michele Aponte\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michele Aponte\" \/>\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:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/\"},\"author\":{\"name\":\"Michele Aponte\",\"@id\":\"https:\/\/blexin.com\/en\/#\/schema\/person\/cdc5540c3b6edcacd8d760669e797005\"},\"headline\":\".NET Core, Docker and Kubernetes\",\"datePublished\":\"2019-06-11T22:00:00+00:00\",\"dateModified\":\"2021-05-21T18:19:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/\"},\"wordCount\":807,\"image\":{\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?fit=1024%2C608&ssl=1\",\"keywords\":[\"Asp.net core\",\"Docker\",\"Kubernetes\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/\",\"url\":\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/\",\"name\":\".NET Core, Docker and Kubernetes - Blexin\",\"isPartOf\":{\"@id\":\"https:\/\/blexin.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?fit=1024%2C608&ssl=1\",\"datePublished\":\"2019-06-11T22:00:00+00:00\",\"dateModified\":\"2021-05-21T18:19:08+00:00\",\"author\":{\"@id\":\"https:\/\/blexin.com\/en\/#\/schema\/person\/cdc5540c3b6edcacd8d760669e797005\"},\"breadcrumb\":{\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?fit=1024%2C608&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?fit=1024%2C608&ssl=1\",\"width\":1024,\"height\":608},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blexin.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\".NET Core, Docker and Kubernetes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blexin.com\/en\/#website\",\"url\":\"https:\/\/blexin.com\/en\/\",\"name\":\"Blexin\",\"description\":\"Con noi \u00e8 semplice\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blexin.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blexin.com\/en\/#\/schema\/person\/cdc5540c3b6edcacd8d760669e797005\",\"name\":\"Michele Aponte\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blexin.com\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/32138aff568f2063b34d27a23cef27e09f3159bfcadea5ea05599c499cf4342f?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/32138aff568f2063b34d27a23cef27e09f3159bfcadea5ea05599c499cf4342f?s=96&d=identicon&r=g\",\"caption\":\"Michele Aponte\"},\"url\":\"https:\/\/blexin.com\/en\/author\/michele-aponteblexin-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":".NET Core, Docker and Kubernetes - Blexin","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:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/","og_locale":"en_US","og_type":"article","og_title":".NET Core, Docker and Kubernetes - Blexin","og_description":"Using Docker and Kubernetes to deploy .NET Core applications to production","og_url":"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/","og_site_name":"Blexin","article_published_time":"2019-06-11T22:00:00+00:00","article_modified_time":"2021-05-21T18:19:08+00:00","og_image":[{"width":1024,"height":608,"url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?fit=1024%2C608&ssl=1","type":"image\/png"}],"author":"Michele Aponte","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Michele Aponte","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/#article","isPartOf":{"@id":"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/"},"author":{"name":"Michele Aponte","@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/cdc5540c3b6edcacd8d760669e797005"},"headline":".NET Core, Docker and Kubernetes","datePublished":"2019-06-11T22:00:00+00:00","dateModified":"2021-05-21T18:19:08+00:00","mainEntityOfPage":{"@id":"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/"},"wordCount":807,"image":{"@id":"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?fit=1024%2C608&ssl=1","keywords":["Asp.net core","Docker","Kubernetes"],"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/","url":"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/","name":".NET Core, Docker and Kubernetes - Blexin","isPartOf":{"@id":"https:\/\/blexin.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/#primaryimage"},"image":{"@id":"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?fit=1024%2C608&ssl=1","datePublished":"2019-06-11T22:00:00+00:00","dateModified":"2021-05-21T18:19:08+00:00","author":{"@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/cdc5540c3b6edcacd8d760669e797005"},"breadcrumb":{"@id":"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/#primaryimage","url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?fit=1024%2C608&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?fit=1024%2C608&ssl=1","width":1024,"height":608},{"@type":"BreadcrumbList","@id":"https:\/\/blexin.com\/en\/blog-en\/net-core-docker-and-kubernetes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blexin.com\/en\/"},{"@type":"ListItem","position":2,"name":".NET Core, Docker and Kubernetes"}]},{"@type":"WebSite","@id":"https:\/\/blexin.com\/en\/#website","url":"https:\/\/blexin.com\/en\/","name":"Blexin","description":"Con noi \u00e8 semplice","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blexin.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/cdc5540c3b6edcacd8d760669e797005","name":"Michele Aponte","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/32138aff568f2063b34d27a23cef27e09f3159bfcadea5ea05599c499cf4342f?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/32138aff568f2063b34d27a23cef27e09f3159bfcadea5ea05599c499cf4342f?s=96&d=identicon&r=g","caption":"Michele Aponte"},"url":"https:\/\/blexin.com\/en\/author\/michele-aponteblexin-com\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3954d64b-7e17-41bc-be9f-0752eca4460a.png?fit=1024%2C608&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pcyUBx-7q9","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/28529","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/users\/196716248"}],"replies":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/comments?post=28529"}],"version-history":[{"count":5,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/28529\/revisions"}],"predecessor-version":[{"id":32931,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/28529\/revisions\/32931"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/media\/28516"}],"wp:attachment":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/media?parent=28529"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/categories?post=28529"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/tags?post=28529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}