{"id":48372,"date":"2025-02-08T08:15:57","date_gmt":"2025-02-08T08:15:57","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=48372"},"modified":"2025-07-12T05:38:45","modified_gmt":"2025-07-12T05:38:45","slug":"docker-port","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/docker-port\/","title":{"rendered":"Docker commands Guide &#8211; docker port with examples"},"content":{"rendered":"\n<p>Here\u2019s a <strong>complete tutorial<\/strong> on the <code>docker port<\/code> command, including <strong>how it works<\/strong>, <strong>use cases<\/strong>, and a <strong>comprehensive list of examples<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What is <code>docker port<\/code>?<\/strong><\/h2>\n\n\n\n<p><code>docker port<\/code> is a Docker command used to <strong>list the port mappings<\/strong> for a container. It shows how the <strong>container\u2019s internal ports<\/strong> (e.g., port <code>80<\/code>) are mapped to the <strong>host machine\u2019s ports<\/strong> (e.g., port <code>8080<\/code>). This is particularly useful for understanding and debugging networking configurations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Key Features:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Displays <strong>port mappings<\/strong> for a container.<\/li>\n\n\n\n<li>Useful for <strong>verifying published ports<\/strong>.<\/li>\n\n\n\n<li>Helps in <strong>debugging connectivity<\/strong> issues.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Basic Syntax<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">docker<\/span> <span class=\"hljs-selector-tag\">port<\/span> <span class=\"hljs-selector-tag\">CONTAINER<\/span> <span class=\"hljs-selector-attr\">&#91;PRIVATE_PORT]<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>Arguments:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>CONTAINER<\/code>: The container\u2019s name or ID.<\/li>\n\n\n\n<li><code>PRIVATE_PORT<\/code>: The internal port inside the container (optional). If specified, it only shows the mapping for that port.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Examples of <code>docker port<\/code><\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. List All Port Mappings for a Container<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker port my_container\n<\/code><\/span><\/pre>\n\n\n<p><strong>Example Output:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">80\/tcp -&gt; 0.0.0.0:8080\n443\/tcp -&gt; 0.0.0.0:8443\n<\/code><\/span><\/pre>\n\n\n<p>This shows that port <code>80<\/code> in the container is mapped to port <code>8080<\/code> on the host, and port <code>443<\/code> is mapped to <code>8443<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Show the Mapping for a Specific Port<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker port my_container 80\n<\/code><\/span><\/pre>\n\n\n<p><strong>Example Output:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\">0<span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-pseudo\">:8080<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This indicates that the container\u2019s port <code>80<\/code> is accessible on port <code>8080<\/code> of the host machine.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Use a Container ID Instead of a Name<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker port a1b2c3d4e5f6 443\n<\/code><\/span><\/pre>\n\n\n<p>This returns the mapping for port <code>443<\/code> on the container with ID <code>a1b2c3d4e5f6<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Check Port Mapping for Multiple Containers<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker ps -q | xargs -n 1 docker port\n<\/code><\/span><\/pre>\n\n\n<p>This lists the port mappings for all running containers.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Verify a Random Port Mapping<\/strong><\/h3>\n\n\n\n<p>If you published a container with a random port (<code>-p 0:80<\/code>), use <code>docker port<\/code> to find the assigned host port:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker port my_container 80\n<\/code><\/span><\/pre>\n\n\n<p><strong>Example Output:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\">0<span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-pseudo\">:32768<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The random port <code>32768<\/code> on the host is mapped to the container\u2019s port <code>80<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. Combine <code>docker port<\/code> with <code>curl<\/code> to Test Connectivity<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">curl<\/span> <span class=\"hljs-selector-tag\">localhost<\/span><span class=\"hljs-selector-pseudo\">:8080<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>You can verify if the mapped port is responding by sending a request to it.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>7. Check Port Mapping for a Stopped Container<\/strong><\/h3>\n\n\n\n<p>Even after a container stops, <code>docker port<\/code> still shows its previous mappings:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker port stopped_container\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Use Cases for <code>docker port<\/code><\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Verifying Port Mappings<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ensure that ports are correctly exposed and accessible from the host.<\/li>\n\n\n\n<li>Check which random ports were assigned when using <code>-p 0:PORT<\/code>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Debugging Connectivity Issues<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <code>docker port<\/code> to identify whether the correct ports are mapped.<\/li>\n\n\n\n<li>Combine with <code>curl<\/code> or <code>telnet<\/code> to check if a service is responding.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Auditing Network Configuration<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Regularly list port mappings to monitor network exposure for security.<\/li>\n\n\n\n<li>Detect conflicts between containers using the same host port.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Multi-Service Environments<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Quickly check how multiple services (e.g., web, database, caching) are mapped to different host ports.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Dynamic Port Mapping<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>When using <strong>Docker Swarm<\/strong> or <strong>Kubernetes<\/strong>, where services often use random port mappings, <code>docker port<\/code> is useful for finding the actual host ports.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>List of Common <code>docker port<\/code> Commands<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Command<\/strong><\/th><th><strong>Description<\/strong><\/th><\/tr><\/thead><tbody><tr><td><code>docker port my_container<\/code><\/td><td>List all port mappings for the container<\/td><\/tr><tr><td><code>docker port my_container 80<\/code><\/td><td>Show the host mapping for port 80 in the container<\/td><\/tr><tr><td><code>docker port $(docker ps -q)<\/code><\/td><td>List port mappings for all running containers<\/td><\/tr><tr><td><code>docker port stopped_container<\/code><\/td><td>Check port mappings for a stopped container<\/td><\/tr><tr><td><code>docker port container_id 443<\/code><\/td><td>Show the mapping for port 443 using a container ID<\/td><\/tr><tr><td>`docker ps -q<\/td><td>xargs -n 1 docker port`<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Best Practices for Using <code>docker port<\/code>:<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Verify port mappings before deploying<\/strong> to avoid conflicts.<\/li>\n\n\n\n<li>Use <code>docker port<\/code> in <strong>scripts<\/strong> to automate port checks for health monitoring.<\/li>\n\n\n\n<li><strong>Combine with firewalls and security tools<\/strong> to audit exposed ports.<\/li>\n\n\n\n<li><strong>Check for random port mappings<\/strong> in dynamically assigned setups (<code>-p 0:PORT<\/code>).<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Common Errors and Solutions<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>&#8220;Error: No such container&#8221;<\/strong><br>\u2192 Ensure the container is running or exists by checking with <code>docker ps<\/code> or <code>docker ps -a<\/code>.<\/li>\n\n\n\n<li><strong>No Output for <code>docker port<\/code><\/strong><br>\u2192 The container may not have any ports published. Check how it was started: <code>docker inspect --format='{{ .HostConfig.PortBindings }}' my_container<\/code><\/li>\n\n\n\n<li><strong>Service Not Responding on Mapped Port<\/strong><br>\u2192 Verify the service is running inside the container: <code>docker exec -it my_container ps aux<\/code><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here\u2019s a complete tutorial on the docker port command, including how it works, use cases, and a comprehensive list of examples. What is docker port? docker port is a Docker&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[4862],"tags":[],"class_list":["post-48372","post","type-post","status-publish","format-standard","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=48372"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48372\/revisions"}],"predecessor-version":[{"id":48374,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48372\/revisions\/48374"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=48372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=48372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=48372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}