{"id":12699,"date":"2019-07-31T12:58:42","date_gmt":"2019-07-31T10:58:42","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/"},"modified":"2019-07-31T12:58:42","modified_gmt":"2019-07-31T10:58:42","slug":"docker-containers-when-architecture-matter","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/","title":{"rendered":"Windows Docker containers, when platform matters"},"content":{"rendered":"<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">A couple of days ago, I got a question from a customer about an issue he ran into when trying to spin up a container on Windows. <\/span><\/span><\/p>\n<p><!--more--><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\"><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/160-0-banner.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33789\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/160-0-banner.jpg\" alt=\"\" width=\"141\" height=\"184\" \/><\/a><\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">The context was as follows:<\/span><\/span><\/p>\n<pre class=\"brush: powershell; gutter: true; first-line: 1\">&gt; docker container run hello-world:nanoserver\nUnable to find image 'hello-world:nanoserver' locally\nnanoserver: Pulling from library\/hello-world\nC:\\Program Files\\Docker\\docker.exe: no matching manifest for windows\/amd64 10.0.14393 in the manifest list entries.\nSee 'C:\\Program Files\\Docker\\docker.exe run --help'.<\/pre>\n<p>&nbsp;<\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">I thought that was very interesting because it pointed out some considerations about Docker image architecture design. First, we must bear in mind that containers and the underlying host share a single kernel by design and the container\u2019s base image must match that of the host. <\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">Let\u2019s first begin with containers in a Linux world because it highlights the concept of Kernel sharing between different distros. In this demo, let\u2019s say I\u2019m running a Linux Ubuntu server 16.04 \u2026<\/span><\/span><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ cat \/etc\/os-release | grep -i version\nVERSION=\"16.04.6 LTS (Xenial Xerus)\"\nVERSION_ID=\"16.04\"\nVERSION_CODENAME=xenial<\/pre>\n<p>&nbsp;<\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">\u2026 and let\u2019s say I want to run a container based on Centos 6.6 \u2026<\/span><\/span><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ docker run --rm -ti centos:6.6 cat \/etc\/centos-release\nUnable to find image 'centos:6.6' locally\n6.6: Pulling from library\/centos\n5dd797628260: Pull complete\nDigest: sha256:32b80b90ba17ed16e9fa3430a49f53ff6de0d4c76ad8631717a1373d5921fa26\nStatus: Downloaded newer image for centos:6.6\nCentOS release 6.6 (Final)<\/pre>\n<p>&nbsp;<\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">You may wonder how it is possible to run different distros between the container and the host and what\u2019s the magic behind the scene? In fact, both the container and the host share the same Linux kernel and even if CentOS 6.6 ships with a kernel version 2.6, while Ubuntu 16.04 ships with 4.4 we usually may upgrade the kernel since it\u2019s backward compatible. The commands below demonstrate the centos container is using the same Kernel than the host.<\/span><\/span><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ uname -r\n4.4.0-142-generic\n$ docker run --rm -ti centos:6.6 uname -r\n4.4.0-142-generic<\/pre>\n<p>&nbsp;<\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">Let\u2019s say now my docker host is running on the x64 architecture. If we look at the Centos image supported architectures on Docker hub, we notice different ones:<\/span><\/span><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/160-centos-container-arch.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33787\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/160-centos-container-arch.jpg\" alt=\"\" width=\"474\" height=\"187\" \/><\/a><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">From the output above, we may deduce it should exist a combination of different images and tags for each available architecture and the interesting point is how does Docker pull the correct one regarding my underlying architecture? This is where manifest lists come into play and allow multi-architecture images. A manifest list contains platform segregated references to a single-platform manifest entry. We may inspect a manifest list through the docker manifest command (still in experimental mode at the moment of writing this blog post).<\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"font-family: Calibri\"><span style=\"color: #000000\">For example, if I want to get a list of manifests and their corresponding architectures for the Centos 7, I can run <\/span><a href=\"https:\/\/docs.docker.com\/engine\/reference\/commandline\/manifest\/\" target=\"_blank\" rel=\"noopener noreferrer\">docker manifest command<\/a><\/span><span style=\"color: #000000;font-family: Calibri\"> as follows:<\/span><\/span><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ docker manifest inspect centos:7 --verbose\n[\n        {\n                \"Ref\": \"docker.io\/library\/centos:7@sha256:ca58fe458b8d94bc6e3072f1cfbd334855858e05e1fd633aa07cf7f82b048e66\",\n                \"Descriptor\": {\n                        \"mediaType\": \"application\/vnd.docker.distribution.manifest.v2+json\",\n                        \"digest\": \"sha256:ca58fe458b8d94bc6e3072f1cfbd334855858e05e1fd633aa07cf7f82b048e66\",\n                        \"size\": 529,\n                        \"platform\": {\n                                \"architecture\": \"amd64\",\n                                \"os\": \"linux\"\n                        }\n                },\n                \"SchemaV2Manifest\": {\n                        \"schemaVersion\": 2,\n                        \"mediaType\": \"application\/vnd.docker.distribution.manifest.v2+json\",\n                        \"config\": {\n                                \"mediaType\": \"application\/vnd.docker.container.image.v1+json\",\n                                \"size\": 2182,\n                                \"digest\": \"sha256:9f38484d220fa527b1fb19747638497179500a1bed8bf0498eb788229229e6e1\"\n                        },\n                        \"layers\": [\n                                {\n                                        \"mediaType\": \"application\/vnd.docker.image.rootfs.diff.tar.gzip\",\n                                        \"size\": 75403831,\n                                        \"digest\": \"sha256:8ba884070f611d31cb2c42eddb691319dc9facf5e0ec67672fcfa135181ab3df\"\n                                }\n                        ]\n                }\n        },\n        {\n                \"Ref\": \"docker.io\/library\/centos:7@sha256:9fd67116449f225c6ef60d769b5219cf3daa831c5a0a6389bbdd7c952b7b352d\",\n                \"Descriptor\": {\n                        \"mediaType\": \"application\/vnd.docker.distribution.manifest.v2+json\",\n                        \"digest\": \"sha256:9fd67116449f225c6ef60d769b5219cf3daa831c5a0a6389bbdd7c952b7b352d\",\n                        \"size\": 529,\n                        \"platform\": {\n                                \"architecture\": \"arm\",\n                                \"os\": \"linux\",\n                                \"variant\": \"v7\"\n                        }\n                },\n                \"SchemaV2Manifest\": {\n                        \"schemaVersion\": 2,\n                        \"mediaType\": \"application\/vnd.docker.distribution.manifest.v2+json\",\n                        \"config\": {\n                                \"mediaType\": \"application\/vnd.docker.container.image.v1+json\",\n                                \"size\": 2181,\n                                \"digest\": \"sha256:8c52f2d0416faa8009082cf3ebdea85b3bc1314d97925342be83bc9169178efe\"\n                        },\n                        \"layers\": [\n                                {\n                                        \"mediaType\": \"application\/vnd.docker.image.rootfs.diff.tar.gzip\",\n                                        \"size\": 70029389,\n                                        \"digest\": \"sha256:193bcbf05ff9ae85ac1a58cacd9c07f8f4297dc648808c347cceb3797ae603af\"\n                                }\n                        ]\n                }\n        },\n        {\n                \"Ref\": \"docker.io\/library\/centos:7@sha256:f25f24daae92b5b5fe75bc0d5d9a3d2145906290f25aa434c43bfcefecd10dec\",\n                \"Descriptor\": {\n                        \"mediaType\": \"application\/vnd.docker.distribution.manifest.v2+json\",\n                        \"digest\": \"sha256:f25f24daae92b5b5fe75bc0d5d9a3d2145906290f25aa434c43bfcefecd10dec\",\n                        \"size\": 529,\n                        \"platform\": {\n                                \"architecture\": \"arm64\",\n                                \"os\": \"linux\",\n                                \"variant\": \"v8\"\n                        }\n                },\n                \"SchemaV2Manifest\": {\n                        \"schemaVersion\": 2,\n                        \"mediaType\": \"application\/vnd.docker.distribution.manifest.v2+json\",\n                        \"config\": {\n                                \"mediaType\": \"application\/vnd.docker.container.image.v1+json\",\n                                \"size\": 2183,\n                                \"digest\": \"sha256:7a51de8a65d533b6706fbd63beea13610e5486e49141610e553a3e784c133a37\"\n                        },\n                        \"layers\": [\n                                {\n                                        \"mediaType\": \"application\/vnd.docker.image.rootfs.diff.tar.gzip\",\n                                        \"size\": 74163767,\n                                        \"digest\": \"sha256:90c48ff53512085fb5adaf9bff8f1999a39ce5e5b897f5dfe333555eb27547a7\"\n                                }\n                        ]\n                }\n        },\n        {\n                \"Ref\": \"docker.io\/library\/centos:7@sha256:1f832b4e3b9ddf67fd77831cdfb591ce5e968548a01581672e5f6b32ce1212fe\",\n                \"Descriptor\": {\n                        \"mediaType\": \"application\/vnd.docker.distribution.manifest.v2+json\",\n                        \"digest\": \"sha256:1f832b4e3b9ddf67fd77831cdfb591ce5e968548a01581672e5f6b32ce1212fe\",\n                        \"size\": 529,\n                        \"platform\": {\n                                \"architecture\": \"386\",\n                                \"os\": \"linux\"\n                        }\n                },\n                \"SchemaV2Manifest\": {\n                        \"schemaVersion\": 2,\n                        \"mediaType\": \"application\/vnd.docker.distribution.manifest.v2+json\",\n                        \"config\": {\n                                \"mediaType\": \"application\/vnd.docker.container.image.v1+json\",\n                                \"size\": 2337,\n                                \"digest\": \"sha256:fe70670fcbec5e3b3081c6800cb531002474c36563689b450d678a34a89b62c3\"\n                        },\n                        \"layers\": [\n                                {\n                                        \"mediaType\": \"application\/vnd.docker.image.rootfs.diff.tar.gzip\",\n                                        \"size\": 75654099,\n                                        \"digest\": \"sha256:39016a8400a36ce04799adba71f8678ae257d9d8dba638d81b8c5755f01fe213\"\n                                }\n                        ]\n                }\n        },\n        {\n                \"Ref\": \"docker.io\/library\/centos:7@sha256:2d9b27e9c89d511a58873254d86ecf96df0f599daae3d555d896fee9f49fedf4\",\n                \"Descriptor\": {\n                        \"mediaType\": \"application\/vnd.docker.distribution.manifest.v2+json\",\n                        \"digest\": \"sha256:2d9b27e9c89d511a58873254d86ecf96df0f599daae3d555d896fee9f49fedf4\",\n                        \"size\": 529,\n                        \"platform\": {\n                                \"architecture\": \"ppc64le\",\n                                \"os\": \"linux\"\n                        }\n                },\n                \"SchemaV2Manifest\": {\n                        \"schemaVersion\": 2,\n                        \"mediaType\": \"application\/vnd.docker.distribution.manifest.v2+json\",\n                        \"config\": {\n                                \"mediaType\": \"application\/vnd.docker.container.image.v1+json\",\n                                \"size\": 2185,\n                                \"digest\": \"sha256:c9744f4afb966c58d227eb6ba03ab9885925f9e3314edd01d0e75481bf1c937d\"\n                        },\n                        \"layers\": [\n                                {\n                                        \"mediaType\": \"application\/vnd.docker.image.rootfs.diff.tar.gzip\",\n                                        \"size\": 76787221,\n                                        \"digest\": \"sha256:deab1c539926c1ca990d5d025c6b37c649bbba025883d4b209e3b52b8fdf514a\"\n                                }\n                        ]\n                }\n        }\n]<\/pre>\n<p>&nbsp;<\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">Each manifest entry contains different information including the image signature digest, the operating system and the supported architecture. Let\u2019s pull the Centos:7 image:<\/span><\/span><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ docker pull centos:7\n7: Pulling from library\/centos\n8ba884070f61: Pull complete\nDigest: sha256:a799dd8a2ded4a83484bbae769d97655392b3f86533ceb7dd96bbac929809f3c\nStatus: Downloaded newer image for centos:7\ndocker.io\/library\/centos:7<\/pre>\n<p>&nbsp;<\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">Let\u2019s have a look at the unique identifier of the centos:7 image<\/span><\/span>:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ docker inspect --format='{{.Id}}' centos:7sha256:9f38484d220fa527b1fb19747638497179500a1bed8bf0498eb788229229e6e1<\/pre>\n<p>&nbsp;<\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">It corresponds to the SchemaV2Manifest digest value of the manifest entry related to the x64 architecture (please refer to the docker manifest inspect output above). <\/span><\/span><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">Another official way to query manifest list and architecture is to go through the <em>mplatform\/mquery<\/em> container as follows:<\/span><\/span><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ docker run mplatform\/mquery centos:7\nImage: centos:7\n * Manifest List: Yes\n * Supported platforms:\n   - linux\/amd64\n   - linux\/arm\/v7\n   - linux\/arm64\n   - linux\/386\n   - linux\/ppc64le<\/pre>\n<p>&nbsp;<\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">However, for a Linux Centos 6.6 image (used in my first demo) the architecture support seems to be limited to \u00a0the x64 architecture:<\/span><\/span><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ docker run mplatform\/mquery centos:6.6\nImage: centos:6.6\n * Manifest List: Yes\n * Supported platforms:\n   - linux\/amd64<\/pre>\n<p>&nbsp;<\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">Now we are aware of manifest lists and multi-architecture images let\u2019s go back to the initial problem. The customer ran into an platform compatibility issue when trying to spin-up a the <i>hello-world:nanoserver<\/i> container on a Windows Server 2016 Docker host. As a reminder, the error message was:<\/span><\/span><\/p>\n<p><b><i><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">no matching manifest for windows\/amd64 10.0.14393 in the manifest list entries.<\/span><\/span><\/i><\/b><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">In the way, that may be surprising because Windows host and containers also share a single Kernel. That\u2019s true and it was the root cause of my customer\u2019s issue by the way. The image he wanted to pull supports only the following Windows architecture (queried from the manifest list):<\/span><\/span><\/p>\n<pre class=\"brush: powershell; gutter: true; first-line: 1\">&gt; docker run mplatform\/mquery hello-world:nanoserver\nImage: hello-world:nanoserver\n * Manifest List: Yes\n * Supported platforms:\n   - windows\/amd64:10.0.17134.885\n   - windows\/amd64:10.0.17763.615<\/pre>\n<p>&nbsp;<\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">You may notice several supported Windows platforms but with different operating system versions. Let\u2019s have look at the Docker host version in the context of my customer:<\/span><\/span><\/p>\n<pre class=\"brush: powershell; gutter: true; first-line: 1\">&gt; [System.Environment]::OSVersion.Version\nMajor  Minor  Build  Revision\n-----  -----  -----  --------\n10     0      14393  0<\/pre>\n<p>&nbsp;<\/p>\n<p><span lang=\"EN-US\"><span style=\"font-family: Calibri\"><span style=\"color: #000000\">The tricky part is Windows Server 2016 comes with different branches \u2013 1607\/1709 and 1803 \u2013 which aren\u2019t technically all the same Windows Server version. Each branch comes with a different build number. Referring to the <\/span><a href=\"https:\/\/docs.microsoft.com\/en-us\/virtualization\/windowscontainers\/deploy-containers\/version-compatibility\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft documentation<\/a><\/span><span style=\"color: #000000;font-family: Calibri\"> when the build number (3<sup>rd<\/sup> column) is changing a new operating system version is published. What it means in that case is the OS version between the Windows Docker host and the Docker image we tried to pull are different hence we experienced this compatibility issue. However let&#8217;s precise that images and containers may run with newer versions on the host side but the opposite is not true obviously. You can refer to the same Microsoft link to get a picture of Windows container and host compatibility.\u00a0<\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"font-family: Calibri\"><span style=\"color: #000000\">How to fix this issue? Well, we may go two ways here. The first one consists in re-installing a Docker host platform compatible with the corresponding image. The second one consists in using an image compatible with the current architecture and referring to the <\/span><a href=\"https:\/\/hub.docker.com\/r\/winamd64\/hello-world\/tags\" target=\"_blank\" rel=\"noopener noreferrer\">hello-world image tags<\/a><\/span><span style=\"color: #000000;font-family: Calibri\"> we have one. We may check the architecture compatibility by query the manifest file list as follows:<\/span><\/span><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">&gt; docker run mplatform\/mquery hello-world:nanoserver-sac2016\nImage: hello-world:nanoserver-sac2016\n * Manifest List: Yes\n * Supported platforms:\n   - windows\/amd64:10.0.14393.2551<\/pre>\n<p>&nbsp;<\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">Let\u2019s try to pull the image with the <i>nanoserver-sac2016<\/i> tag:<\/span><\/span><\/p>\n<pre class=\"brush: powershell; gutter: true; first-line: 1\">&gt; docker pull hello-world:nanoserver-sac2016\nnanoserver-sac2016: Pulling from library\/hello-world\nbce2fbc256ea: Already exists\n6f2071dcd729: Pull complete\n909cdbafc9e1: Pull complete\na43e426cc5c9: Pull complete\nDigest: sha256:878fd913010d26613319ec7cc83b400cb92113c314da324681d9fecfb5082edc\nStatus: Downloaded newer image for hello-world:nanoserver-sac2016\ndocker.io\/library\/hello-world:nanoserver-sac2016<\/pre>\n<p>&nbsp;<\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">Here we go! <\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000;font-family: Calibri\">See you!<\/span><\/span><\/p>\n<p><span style=\"float: none;background-color: #ffffff;color: #333333;cursor: text;font-family: Georgia,'Times New Roman','Bitstream Charter',Times,serif;font-size: 16px;font-style: normal;font-variant: normal;font-weight: 400;letter-spacing: normal;text-align: left;text-decoration: none;text-indent: 0px;text-transform: none\">By David Barbarin<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A couple of days ago, I got a question from a customer about an issue he ran into when trying to spin up a container on Windows.<\/p>\n","protected":false},"author":26,"featured_media":12701,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1320,1504],"tags":[720,601,1653],"type_dbi":[],"class_list":["post-12699","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","category-docker","tag-container","tag-docker","tag-manifest"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Windows Docker containers, when platform matters - dbi Blog<\/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:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Windows Docker containers, when platform matters\" \/>\n<meta property=\"og:description\" content=\"A couple of days ago, I got a question from a customer about an issue he ran into when trying to spin up a container on Windows.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-31T10:58:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/160-centos-container-arch.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"474\" \/>\n\t<meta property=\"og:image:height\" content=\"187\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Microsoft Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Microsoft Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/\"},\"author\":{\"name\":\"Microsoft Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"headline\":\"Windows Docker containers, when platform matters\",\"datePublished\":\"2019-07-31T10:58:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/\"},\"wordCount\":813,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/160-centos-container-arch.jpg\",\"keywords\":[\"container\",\"Docker\",\"manifest\"],\"articleSection\":[\"DevOps\",\"Docker\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/\",\"name\":\"Windows Docker containers, when platform matters - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/160-centos-container-arch.jpg\",\"datePublished\":\"2019-07-31T10:58:42+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/160-centos-container-arch.jpg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/160-centos-container-arch.jpg\",\"width\":474,\"height\":187},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Windows Docker containers, when platform matters\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\",\"name\":\"Microsoft Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"caption\":\"Microsoft Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Windows Docker containers, when platform matters - dbi Blog","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.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/","og_locale":"en_US","og_type":"article","og_title":"Windows Docker containers, when platform matters","og_description":"A couple of days ago, I got a question from a customer about an issue he ran into when trying to spin up a container on Windows.","og_url":"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/","og_site_name":"dbi Blog","article_published_time":"2019-07-31T10:58:42+00:00","og_image":[{"width":474,"height":187,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/160-centos-container-arch.jpg","type":"image\/jpeg"}],"author":"Microsoft Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Microsoft Team","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/"},"author":{"name":"Microsoft Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"headline":"Windows Docker containers, when platform matters","datePublished":"2019-07-31T10:58:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/"},"wordCount":813,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/160-centos-container-arch.jpg","keywords":["container","Docker","manifest"],"articleSection":["DevOps","Docker"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/","url":"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/","name":"Windows Docker containers, when platform matters - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/160-centos-container-arch.jpg","datePublished":"2019-07-31T10:58:42+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/160-centos-container-arch.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/160-centos-container-arch.jpg","width":474,"height":187},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/docker-containers-when-architecture-matter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Windows Docker containers, when platform matters"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4","name":"Microsoft Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","caption":"Microsoft Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12699","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=12699"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12699\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/12701"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12699"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12699"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12699"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=12699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}