{"id":48394,"date":"2025-02-08T08:22:00","date_gmt":"2025-02-08T08:22:00","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=48394"},"modified":"2025-07-12T05:38:44","modified_gmt":"2025-07-12T05:38:44","slug":"docker-stop","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/docker-stop\/","title":{"rendered":"Docker commands Guide &#8211; docker stop with examples"},"content":{"rendered":"\n<p>Here\u2019s a <strong>complete tutorial<\/strong> on <code>docker stop<\/code>, including its <strong>purpose<\/strong>, <strong>how to use it<\/strong>, <strong>examples<\/strong>, and <strong>use cases<\/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 stop<\/code>?<\/strong><\/h2>\n\n\n\n<p><code>docker stop<\/code> is a Docker command used to <strong>gracefully stop a running container<\/strong> by sending the <strong><code>SIGTERM<\/code> signal<\/strong>. This allows the main process inside the container to perform necessary cleanup before shutting down. If the container doesn\u2019t stop within the specified timeout (default is 10 seconds), Docker sends a <strong><code>SIGKILL<\/code> signal<\/strong> to forcefully stop it.<\/p>\n\n\n\n<p><strong>Key Features:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stops running containers <strong>gracefully<\/strong> (tries to avoid data loss).<\/li>\n\n\n\n<li>Allows you to specify a <strong>timeout<\/strong> before forcing the stop.<\/li>\n\n\n\n<li>Can stop <strong>multiple containers<\/strong> at once.<\/li>\n\n\n\n<li>Useful for <strong>service management, maintenance, and resource control<\/strong>.<\/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\">stop<\/span> <span class=\"hljs-selector-attr\">&#91;OPTIONS]<\/span> <span class=\"hljs-selector-tag\">CONTAINER<\/span> <span class=\"hljs-selector-attr\">&#91;CONTAINER...]<\/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>Common Options:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>-t<\/code>, <code>--time<\/code>: Specify the <strong>timeout<\/strong> (in seconds) before forcefully stopping the container. The default is 10 seconds.<\/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 stop<\/code><\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Stop a Running Container<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker stop my_container\n<\/code><\/span><\/pre>\n\n\n<p>This sends a <code>SIGTERM<\/code> to the container named <code>my_container<\/code> and waits up to 10 seconds before forcefully stopping 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>2. Stop a Container by ID<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker stop a1b2c3d4e5f6\n<\/code><\/span><\/pre>\n\n\n<p>You can stop a container using its unique container ID.<\/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. Stop Multiple Containers<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker stop container1 container2 container3\n<\/code><\/span><\/pre>\n\n\n<p>This command stops multiple containers simultaneously.<\/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. Stop All Running Containers<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">docker stop $(docker ps -q)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This stops all currently 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. Specify a Custom Timeout<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker stop -t 20 my_container\n<\/code><\/span><\/pre>\n\n\n<p>This gives the container 20 seconds to stop gracefully before sending <code>SIGKILL<\/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. Use in a Shell Script<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">#!\/bin\/bash<\/span>\ndocker stop web_container db_container cache_container\n<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"Containers stopped successfully.\"<\/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\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This script stops specific containers and prints a success message.<\/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. Stop the Last Created Container<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">docker stop $(docker ps -lq)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This stops the most recently created container.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>8. Stop Containers with Specific Filters<\/strong><\/h3>\n\n\n\n<p>Stop all containers that were created from a specific image:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">docker ps -q --filter <span class=\"hljs-string\">\"ancestor=nginx\"<\/span> | xargs docker stop\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>9. Monitor and Stop Non-Responsive Containers<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">docker inspect --format=<span class=\"hljs-string\">'{{.State.Status}}'<\/span> my_container\ndocker stop my_container\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Check the container status before stopping 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>10. Automate Maintenance with <code>docker stop<\/code><\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-meta\">#!\/bin\/bash<\/span>\n<span class=\"hljs-keyword\">for<\/span> container <span class=\"hljs-keyword\">in<\/span> $(docker ps -q); <span class=\"hljs-keyword\">do<\/span>\n  docker stop $container\ndone\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This script stops all running containers one by one.<\/p>\n\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 stop<\/code><\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Graceful Service Shutdown<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Safely stop services to <strong>apply updates<\/strong> or perform <strong>maintenance<\/strong>.<\/li>\n\n\n\n<li>Ensure that services have time to clean up resources or write data before shutting down.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Resource Management<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Free up system resources by stopping non-critical containers during high-demand periods.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Debugging and Troubleshooting<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stop unresponsive or malfunctioning containers for investigation.<\/li>\n\n\n\n<li>Combine with <code>docker logs<\/code> and <code>docker inspect<\/code> to identify issues.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Scheduled Maintenance<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <code>docker stop<\/code> in <strong>scheduled scripts<\/strong> to stop services during off-peak hours.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. CI\/CD Pipelines<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stop containers after automated tests to ensure a clean environment for the next test cycle.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. Cleanup and Recovery<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stop and restart containers during service recovery or when replacing outdated services.<\/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 stop<\/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 stop my_container<\/code><\/td><td>Gracefully stop a running container<\/td><\/tr><tr><td><code>docker stop container1 container2<\/code><\/td><td>Stop multiple containers<\/td><\/tr><tr><td><code>docker stop a1b2c3d4e5f6<\/code><\/td><td>Stop a container using its ID<\/td><\/tr><tr><td><code>docker stop $(docker ps -q)<\/code><\/td><td>Stop all running containers<\/td><\/tr><tr><td><code>docker stop -t 20 my_container<\/code><\/td><td>Stop a container with a 20-second timeout<\/td><\/tr><tr><td><code>docker stop $(docker ps -lq)<\/code><\/td><td>Stop the last created container<\/td><\/tr><tr><td>`docker ps -q &#8211;filter &#8220;ancestor=nginx&#8221;<\/td><td>xargs docker stop`<\/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 stop<\/code>:<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Use a reasonable timeout<\/strong> (<code>-t<\/code>) to allow services to shut down cleanly.<\/li>\n\n\n\n<li><strong>Monitor container logs<\/strong> after stopping to verify that the service shut down properly.<\/li>\n\n\n\n<li><strong>Combine with <code>docker ps<\/code> and filters<\/strong> to target specific containers for stopping.<\/li>\n\n\n\n<li><strong>Avoid using <code>-t 0<\/code> unless necessary<\/strong>\u2014give services at least a few seconds to clean up.<\/li>\n\n\n\n<li><strong>Automate container shutdowns<\/strong> for scheduled maintenance or batch processing.<\/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;No such container&#8221;<\/strong><br>\u2192 Ensure the container exists and is running. Check with <code>docker ps<\/code>.<\/li>\n\n\n\n<li><strong>&#8220;Container failed to stop within the timeout&#8221;<\/strong><br>\u2192 Increase the timeout (<code>-t<\/code>) or use <code>docker kill<\/code> to forcefully stop the container.<\/li>\n\n\n\n<li><strong>&#8220;Permission denied&#8221;<\/strong><br>\u2192 Ensure you have the necessary permissions or run with <code>sudo<\/code>.<\/li>\n\n\n\n<li><strong>Service Does Not Restart Properly<\/strong><br>\u2192 Check container logs and configuration before restarting.<\/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>Combining <code>docker stop<\/code> with Other Commands<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Stop and Remove a Container<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker stop my_container &amp;&amp; docker rm my_container\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>Stop, Inspect, and Restart<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker stop my_app\ndocker inspect my_app\ndocker start my_app\n<\/code><\/span><\/pre>\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 docker stop, including its purpose, how to use it, examples, and use cases. What is docker stop? docker stop is a Docker command used to&#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-48394","post","type-post","status-publish","format-standard","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48394","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=48394"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48394\/revisions"}],"predecessor-version":[{"id":48396,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48394\/revisions\/48396"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=48394"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=48394"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=48394"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}