{"id":53777,"date":"2025-09-03T10:56:09","date_gmt":"2025-09-03T00:56:09","guid":{"rendered":"https:\/\/www.cloudproinc.com.au\/?p=53777"},"modified":"2025-09-03T10:56:11","modified_gmt":"2025-09-03T00:56:11","slug":"keep-docker-containers-running-prevent-common-exits","status":"publish","type":"post","link":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/","title":{"rendered":"Keep Docker Containers Running: Prevent Common Exits"},"content":{"rendered":"\n<p>In this blog post Keep Docker Containers Running Prevent Exits in Production and Dev we will walk through why Docker containers exit and the reliable ways to keep them running.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>At a high level, a container runs a single main process. When that process finishes, the container stops. This sounds simple, but it\u2019s the root of most \u201cmy container keeps exiting\u201d issues. The fix is usually to ensure the correct process is running in the foreground and to apply the right lifecycle controls for your environment.<\/p>\n\n\n\n<p>We\u2019ll start with the key concepts behind Docker\u2019s process model, then move to practical steps, patterns, and common pitfalls. By the end, you\u2019ll have a checklist to keep containers alive for development, CI, or production.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-docker-decides-whether-a-container-is-running\">How Docker decides whether a container is &#8220;running&#8221;<\/h2>\n\n\n\n<p>Docker is built on Linux namespaces and cgroups and manages containers by tracking their PID 1\u2014the first process inside the container. The Docker daemon considers a container \u201crunning\u201d as long as PID 1 is alive. When PID 1 exits, Docker stops the container.<\/p>\n\n\n\n<p>Important implications:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Your application (or the command you configure) must run in the foreground. If it daemonizes or backgrounds itself, the container will exit when the shell script ends.<\/li>\n\n\n\n<li>CMD and ENTRYPOINT define what becomes PID 1. Overriding these at runtime changes what keeps the container alive.<\/li>\n\n\n\n<li>PID 1 has special signal and zombie-reaping responsibilities. Use an init process when needed.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-quick-checklist-when-a-container-exits-immediately\">Quick checklist when a container exits immediately<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Inspect logs: <code>docker logs &lt;container><\/code><\/li>\n\n\n\n<li>Check exit reason: <code>docker inspect -f '{{.State.ExitCode}} {{.State.Error}} {{.State.OOMKilled}}' &lt;container><\/code><\/li>\n\n\n\n<li>Review the command\/entrypoint actually used: <code>docker inspect -f '{{.Path}} {{.Args}}' &lt;container><\/code><\/li>\n\n\n\n<li>Run the image interactively to reproduce: <code>docker run --rm -it &lt;image> sh<\/code><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-proven-ways-to-keep-a-container-running\">Proven ways to keep a container running<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-1-make-the-main-service-run-in-the-foreground\">1) Make the main service run in the foreground<\/h3>\n\n\n\n<p>Many services (nginx, Apache, some app servers) default to daemon mode. In containers, you want the opposite: keep the service in the foreground so Docker can track it.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-e51695658fb7264ce2f29bd4af651b24\"><code># NGINX example (foreground mode)\ndocker run -d --name web nginx:alpine nginx -g 'daemon off;'<\/code><\/pre>\n\n\n\n<p>In a Dockerfile, encode this as the default CMD so you don\u2019t need to remember it each time:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-0b79549634e2889d3d0a941580097f4a\"><code># Dockerfile\nFROM nginx:alpine\nCMD &#91;\"nginx\", \"-g\", \"daemon off;\"]<\/code><\/pre>\n\n\n\n<p>Other examples:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Apache HTTPD: <code>httpd-foreground<\/code> is the correct command provided by the official image.<\/li>\n\n\n\n<li>Node.js: <code>CMD [\"node\", \"server.js\"]<\/code>, and make sure <code>server.js<\/code> blocks (e.g., starts an HTTP server) instead of running a one-off script and exiting.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-2-use-a-long-running-command-for-dev-and-debugging\">2) Use a long-running command for dev and debugging<\/h3>\n\n\n\n<p>Sometimes you want a \u201cstay alive\u201d container to exec into. Use a harmless long-running command:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-8c4eb2fde67c692c2ac5e1505b64fec8\"><code># Keeps running indefinitely (good for dev)\ndocker run -d --name devbox alpine sleep infinity\n\n# Alternative universal pattern\ndocker run -d --name devbox alpine sh -c \"while true; do sleep 3600; done\"\n\n# Tail a file (e.g., logs) to keep PID 1 active\ndocker run -d -v $(pwd)\/logs:\/logs alpine sh -c \"touch \/logs\/app.log &amp;&amp; tail -f \/logs\/app.log\"\n<\/code><\/pre>\n\n\n\n<p>These are great for development and debugging but are not a replacement for a properly foregrounded service in production.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-3-get-cmd-and-entrypoint-right\">3) Get CMD and ENTRYPOINT right<\/h3>\n\n\n\n<p>Prefer the JSON (exec) form to avoid shell quirks and signal-handling issues, and so that your process becomes PID 1 directly.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-9a3da358a2ed7123cbacf379b8228830\"><code># Good: exec form (no implicit shell)\nENTRYPOINT &#91;\"\/app\/start\"]\nCMD &#91;\"--config\", \"\/etc\/app\/config.yml\"]\n\n# Risky: shell form (signal pass-through and quoting pitfalls)\nENTRYPOINT \/app\/start --config \/etc\/app\/config.yml<\/code><\/pre>\n\n\n\n<p>Also, avoid scripts that start your app with an ampersand (&amp;). If a script backgrounds the main process and exits, the container stops. Keep the main process in the foreground or end with <code>exec<\/code> to replace the shell:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-9588b2715f83e7a729b166c434c0e1b4\"><code># entrypoint.sh\n#!\/bin\/sh\nset -e\n# Correct: replace the shell so your app becomes PID 1\nexec \/usr\/bin\/myapp --serve<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-4-use-an-init-process-for-proper-signal-handling\">4) Use an init process for proper signal handling<\/h3>\n\n\n\n<p>PID 1 inside a container doesn\u2019t automatically reap zombies or forward signals as you might expect. An init process solves this. The simplest option is Docker\u2019s built-in <code>--init<\/code> flag (uses <em>tini<\/em>).<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-e871f9a7f634c462d062d7696ea55ac6\"><code># Add a minimal init to handle signals and zombies\ndocker run -d --init &lt;image><\/code><\/pre>\n\n\n\n<p>In Dockerfile or Compose, you can make it the default:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-dd7787864b2c922629c50e2e49050a1a\"><code># Dockerfile example using dumb-init (Alpine)\nFROM node:20-alpine\nRUN apk add --no-cache dumb-init\nENTRYPOINT &#91;\"\/usr\/bin\/dumb-init\", \"--\"]\nCMD &#91;\"node\", \"server.js\"]\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-80e133a79ba5e77e1333eb0c8390ca5d\"><code># docker-compose.yml\nservices:\n  api:\n    image: myorg\/api:latest\n    init: true\n    command: &#91;\"node\", \"server.js\"]\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-5-apply-restart-policies-for-resilience\">5) Apply restart policies for resilience<\/h3>\n\n\n\n<p>Restart policies don\u2019t keep a healthy container \u201cbusy,\u201d but they do recover from crashes, reboots, and transient failures.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-475bd378442607782b2c18a21764d729\"><code># Restart unless you explicitly stop it\ndocker run -d --restart unless-stopped myimage\n\n# Only restart on non-zero exit codes\ndocker run -d --restart on-failure:3 myflakyimage\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-7a062c103662de21e60e83591351717e\"><code># docker-compose.yml\nservices:\n  web:\n    image: nginx:alpine\n    command: &#91;\"nginx\", \"-g\", \"daemon off;\"]\n    restart: unless-stopped\n<\/code><\/pre>\n\n\n\n<p>Note: a constantly failing container will loop with a restart policy. Use logs and health checks to fix the root cause.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-6-keep-interactive-dev-containers-open\">6) Keep interactive dev containers open<\/h3>\n\n\n\n<p>For hands-on work, start a shell and keep STDIN open with a TTY:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-bb6b783631fe625b2eaf4eafb7b19f16\"><code>docker run --rm -it --name toolbox ubuntu:24.04 bash<\/code><\/pre>\n\n\n\n<p>If you need it alive in the background, pair with a long-running command:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-4e34e9008adafc11c07e67ad0a2faf5d\"><code>docker run -d --name toolbox -it ubuntu:24.04 sleep infinity\n# Then attach or exec as needed\ndocker exec -it toolbox bash<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-7-running-multiple-processes-use-a-supervisor-or-split-services\">7) Running multiple processes? Use a supervisor\u2014or split services<\/h3>\n\n\n\n<p>Best practice is one service per container. If you must run multiple processes (e.g., tiny agent + main app), use a lightweight supervisor or an init system and ensure the supervisor stays in the foreground.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-0d89a17484d034e14d8839a1ddf96c41\"><code># Example using s6-overlay or a minimal supervisor (conceptual)\n# Ensure the supervisor is PID 1 and the process tree stays attached<\/code><\/pre>\n\n\n\n<p>If processes are unrelated, prefer splitting them into separate containers and connecting them via a network.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-common-pitfalls-that-cause-containers-to-exit\">Common pitfalls that cause containers to exit<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Daemonizing by default: Services like nginx or mysqld may exit unless configured to run in the foreground.<\/li>\n\n\n\n<li>Shell scripts that end: A startup script that backgrounds processes and then exits will stop the container. Use <code>exec<\/code> or run the service in the foreground.<\/li>\n\n\n\n<li>Override mistakes: <code>docker run &lt;image> bash<\/code> overrides the Dockerfile\u2019s <code>CMD<\/code>, so your app won\u2019t start.<\/li>\n\n\n\n<li>Health checks confusion: A failing HEALTHCHECK marks the container \u201cunhealthy,\u201d but doesn\u2019t stop it by itself. Orchestrators may react to health status; Docker\u2019s restart policy won\u2019t automatically respond to health check failure.<\/li>\n\n\n\n<li>OOM kills: If memory limits are too low, the kernel may kill your process. Check <code>OOMKilled<\/code> in <code>docker inspect<\/code> and raise limits.<\/li>\n\n\n\n<li>Signal handling: If your app ignores SIGTERM, Docker will send SIGKILL after the timeout, which can corrupt state. Use an init process and graceful shutdown handlers.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-production-minded-patterns\">Production-minded patterns<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-foreground-first-images\">Foreground-first images<\/h3>\n\n\n\n<p>Build images that expose a single, foregrounded service with clear <code>CMD<\/code>\/<code>ENTRYPOINT<\/code>. Avoid bash-centric entrypoints unless they add real value.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-include-an-init-where-necessary\">Include an init where necessary<\/h3>\n\n\n\n<p>Use <code>--init<\/code> or bundle <code>tini<\/code>\/<code>dumb-init<\/code> so PID 1 behaves correctly, especially for applications that spawn workers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-right-size-resource-limits\">Right-size resource limits<\/h3>\n\n\n\n<p>Set CPU and memory limits that match your workload. Include observability (metrics, logs) to catch restarts early.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-use-restart-policies-and-health-checks-together\">Use restart policies and health checks together<\/h3>\n\n\n\n<p>Combine <code>--restart unless-stopped<\/code> with a HEALTHCHECK. While Docker doesn\u2019t restart on health failure by itself, tooling and orchestrators can act on it, and you gain visibility.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-851dd98b82a45d0b94ed685693141bf8\"><code># Dockerfile\nHEALTHCHECK --interval=30s --timeout=5s --retries=3 \\\n  CMD curl -f http:\/\/localhost:8080\/health || exit 1<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-docker-compose-equivalents\">Docker Compose equivalents<\/h2>\n\n\n\n<p>Compose lets you encode the \u201ckeep it running\u201d patterns in one file.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-3c5332c81c50c4212df5a3bdc4715fd9\"><code>version: \"3.9\"\nservices:\n  web:\n    image: nginx:alpine\n    command: &#91;\"nginx\", \"-g\", \"daemon off;\"]\n    restart: unless-stopped\n\n  api:\n    build: .\/api\n    init: true\n    environment:\n      - NODE_ENV=production\n    restart: on-failure\n\n  devbox:\n    image: ubuntu:24.04\n    command: &#91;\"sleep\", \"infinity\"]\n    tty: true\n    stdin_open: true\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-troubleshooting-sequence-when-a-container-won-t-stay-up\">Troubleshooting sequence when a container won\u2019t stay up<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Confirm the real command: <code>docker inspect -f '{{.Path}} {{.Args}}' &lt;container><\/code><\/li>\n\n\n\n<li>Read logs: <code>docker logs -n 100 -f &lt;container><\/code><\/li>\n\n\n\n<li>Check exit causes: <code>docker inspect -f '{{json .State}}' &lt;container> | jq<\/code><\/li>\n\n\n\n<li>Try a shell in the image: <code>docker run --rm -it &lt;image> sh -lc '&lt;your command>'<\/code><\/li>\n\n\n\n<li>Remove backgrounding and use <code>exec<\/code> in entrypoint scripts.<\/li>\n\n\n\n<li>Add <code>--init<\/code> and test signal handling (<code>docker stop<\/code> should exit cleanly).<\/li>\n\n\n\n<li>Apply restart policy only after the process reliably stays in the foreground.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-summary\">Summary<\/h2>\n\n\n\n<p>Containers stop when their main process exits. To keep them running, ensure your service runs in the foreground, use proper <code>CMD<\/code>\/<code>ENTRYPOINT<\/code>, consider an init process, and apply restart policies for resilience. For development, long-running commands like <code>sleep infinity<\/code> are convenient; for production, foreground-first images with correct signal handling are the gold standard.<\/p>\n\n\n\n<p>If you need help hardening your container runtimes or standardizing images for your teams, the CloudProinc.com.au team works with organisations to make containers predictable, observable, and production-ready.<\/p>\n\n\n\n<ul class=\"wp-block-yoast-seo-related-links yoast-seo-related-links\">\n<li><a href=\"https:\/\/cloudproinc.com.au\/index.php\/2025\/06\/30\/run-azure-powershell-cmdlets-using-docker-containers\/\">Run Azure PowerShell cmdlets using Docker Containers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/04\/how-to-fix-the-critical-error-on-azure-wordpress-web-app\/\">How to Fix the &#8216;Critical Error&#8217; on Azure WordPress Web App<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/25\/run-neo4j-with-docker-inside-github-codespaces\/\">Run Neo4j with Docker inside GitHub Codespaces<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/06\/25\/containerize-a-blazor-net-application\/\">Containerize a Blazor .NET Application<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/07\/02\/use-dev-containers-for-net-development\/\">Use Dev Containers for .NET Development<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Learn why containers exit and practical ways to keep them alive. From foreground processes to restart policies, get clear steps for dev and production.<\/p>\n","protected":false},"author":1,"featured_media":53778,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"Keep Docker Containers Running: Prevent Common Exits","_yoast_wpseo_title":"Keep Docker Containers Running: Prevent Common Exits %%page%% %%sep%% %%sitename%%","_yoast_wpseo_metadesc":"Learn to keep Docker containers running and prevent exits in production and development with our essential guide.","_yoast_wpseo_opengraph-title":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_twitter-title":"","_yoast_wpseo_twitter-description":"","_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[13,70],"tags":[],"class_list":["post-53777","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-docker"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Keep Docker Containers Running: Prevent Common Exits - CPI Consulting<\/title>\n<meta name=\"description\" content=\"Learn to keep Docker containers running and prevent exits in production and development with our essential guide.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Keep Docker Containers Running: Prevent Common Exits\" \/>\n<meta property=\"og:description\" content=\"Learn to keep Docker containers running and prevent exits in production and development with our essential guide.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/\" \/>\n<meta property=\"og:site_name\" content=\"CPI Consulting\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-03T00:56:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-03T00:56:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cloudproinc.com.au\/wp-content\/uploads\/2025\/09\/keep-docker-containers-running-prevent-exits-in-production-and-dev.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"CPI Staff\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"CPI Staff\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/09\\\/03\\\/keep-docker-containers-running-prevent-common-exits\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/09\\\/03\\\/keep-docker-containers-running-prevent-common-exits\\\/\"},\"author\":{\"name\":\"CPI Staff\",\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#\\\/schema\\\/person\\\/192eeeb0ce91062126ce3822ae88fe6e\"},\"headline\":\"Keep Docker Containers Running: Prevent Common Exits\",\"datePublished\":\"2025-09-03T00:56:09+00:00\",\"dateModified\":\"2025-09-03T00:56:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/09\\\/03\\\/keep-docker-containers-running-prevent-common-exits\\\/\"},\"wordCount\":1063,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/09\\\/03\\\/keep-docker-containers-running-prevent-common-exits\\\/#primaryimage\"},\"thumbnailUrl\":\"\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/keep-docker-containers-running-prevent-exits-in-production-and-dev.png\",\"articleSection\":[\"Blog\",\"Docker\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/09\\\/03\\\/keep-docker-containers-running-prevent-common-exits\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/09\\\/03\\\/keep-docker-containers-running-prevent-common-exits\\\/\",\"url\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/09\\\/03\\\/keep-docker-containers-running-prevent-common-exits\\\/\",\"name\":\"Keep Docker Containers Running: Prevent Common Exits - CPI Consulting\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/09\\\/03\\\/keep-docker-containers-running-prevent-common-exits\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/09\\\/03\\\/keep-docker-containers-running-prevent-common-exits\\\/#primaryimage\"},\"thumbnailUrl\":\"\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/keep-docker-containers-running-prevent-exits-in-production-and-dev.png\",\"datePublished\":\"2025-09-03T00:56:09+00:00\",\"dateModified\":\"2025-09-03T00:56:11+00:00\",\"description\":\"Learn to keep Docker containers running and prevent exits in production and development with our essential guide.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/09\\\/03\\\/keep-docker-containers-running-prevent-common-exits\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/09\\\/03\\\/keep-docker-containers-running-prevent-common-exits\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/09\\\/03\\\/keep-docker-containers-running-prevent-common-exits\\\/#primaryimage\",\"url\":\"\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/keep-docker-containers-running-prevent-exits-in-production-and-dev.png\",\"contentUrl\":\"\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/keep-docker-containers-running-prevent-exits-in-production-and-dev.png\",\"width\":1536,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/09\\\/03\\\/keep-docker-containers-running-prevent-common-exits\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/cloudproinc.com.au\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Keep Docker Containers Running: Prevent Common Exits\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#website\",\"url\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/\",\"name\":\"Cloud Pro Inc - CPI Consulting Pty Ltd\",\"description\":\"Cloud, AI &amp; Cybersecurity Consulting | Melbourne\",\"publisher\":{\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#organization\",\"name\":\"Cloud Pro Inc - Cloud Pro Inc - CPI Consulting Pty Ltd\",\"url\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/favfinalfile.png\",\"contentUrl\":\"\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/favfinalfile.png\",\"width\":500,\"height\":500,\"caption\":\"Cloud Pro Inc - Cloud Pro Inc - CPI Consulting Pty Ltd\"},\"image\":{\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#\\\/schema\\\/person\\\/192eeeb0ce91062126ce3822ae88fe6e\",\"name\":\"CPI Staff\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g\",\"caption\":\"CPI Staff\"},\"sameAs\":[\"http:\\\/\\\/www.cloudproinc.com.au\"],\"url\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/author\\\/cpiadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Keep Docker Containers Running: Prevent Common Exits - CPI Consulting","description":"Learn to keep Docker containers running and prevent exits in production and development with our essential guide.","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:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/","og_locale":"en_US","og_type":"article","og_title":"Keep Docker Containers Running: Prevent Common Exits","og_description":"Learn to keep Docker containers running and prevent exits in production and development with our essential guide.","og_url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/","og_site_name":"CPI Consulting","article_published_time":"2025-09-03T00:56:09+00:00","article_modified_time":"2025-09-03T00:56:11+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/cloudproinc.com.au\/wp-content\/uploads\/2025\/09\/keep-docker-containers-running-prevent-exits-in-production-and-dev.png","type":"image\/png"}],"author":"CPI Staff","twitter_card":"summary_large_image","twitter_misc":{"Written by":"CPI Staff","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/#article","isPartOf":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/"},"author":{"name":"CPI Staff","@id":"https:\/\/cloudproinc.azurewebsites.net\/#\/schema\/person\/192eeeb0ce91062126ce3822ae88fe6e"},"headline":"Keep Docker Containers Running: Prevent Common Exits","datePublished":"2025-09-03T00:56:09+00:00","dateModified":"2025-09-03T00:56:11+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/"},"wordCount":1063,"commentCount":0,"publisher":{"@id":"https:\/\/cloudproinc.azurewebsites.net\/#organization"},"image":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2025\/09\/keep-docker-containers-running-prevent-exits-in-production-and-dev.png","articleSection":["Blog","Docker"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/","url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/","name":"Keep Docker Containers Running: Prevent Common Exits - CPI Consulting","isPartOf":{"@id":"https:\/\/cloudproinc.azurewebsites.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/#primaryimage"},"image":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2025\/09\/keep-docker-containers-running-prevent-exits-in-production-and-dev.png","datePublished":"2025-09-03T00:56:09+00:00","dateModified":"2025-09-03T00:56:11+00:00","description":"Learn to keep Docker containers running and prevent exits in production and development with our essential guide.","breadcrumb":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/#primaryimage","url":"\/wp-content\/uploads\/2025\/09\/keep-docker-containers-running-prevent-exits-in-production-and-dev.png","contentUrl":"\/wp-content\/uploads\/2025\/09\/keep-docker-containers-running-prevent-exits-in-production-and-dev.png","width":1536,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/03\/keep-docker-containers-running-prevent-common-exits\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudproinc.com.au\/"},{"@type":"ListItem","position":2,"name":"Keep Docker Containers Running: Prevent Common Exits"}]},{"@type":"WebSite","@id":"https:\/\/cloudproinc.azurewebsites.net\/#website","url":"https:\/\/cloudproinc.azurewebsites.net\/","name":"Cloud Pro Inc - CPI Consulting Pty Ltd","description":"Cloud, AI &amp; Cybersecurity Consulting | Melbourne","publisher":{"@id":"https:\/\/cloudproinc.azurewebsites.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudproinc.azurewebsites.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudproinc.azurewebsites.net\/#organization","name":"Cloud Pro Inc - Cloud Pro Inc - CPI Consulting Pty Ltd","url":"https:\/\/cloudproinc.azurewebsites.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudproinc.azurewebsites.net\/#\/schema\/logo\/image\/","url":"\/wp-content\/uploads\/2022\/01\/favfinalfile.png","contentUrl":"\/wp-content\/uploads\/2022\/01\/favfinalfile.png","width":500,"height":500,"caption":"Cloud Pro Inc - Cloud Pro Inc - CPI Consulting Pty Ltd"},"image":{"@id":"https:\/\/cloudproinc.azurewebsites.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cloudproinc.azurewebsites.net\/#\/schema\/person\/192eeeb0ce91062126ce3822ae88fe6e","name":"CPI Staff","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g","caption":"CPI Staff"},"sameAs":["http:\/\/www.cloudproinc.com.au"],"url":"https:\/\/cloudproinc.com.au\/index.php\/author\/cpiadmin\/"}]}},"jetpack_featured_media_url":"\/wp-content\/uploads\/2025\/09\/keep-docker-containers-running-prevent-exits-in-production-and-dev.png","jetpack-related-posts":[{"id":53790,"url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/08\/keep-net-app-running-in-docker\/","url_meta":{"origin":53777,"position":0},"title":"Keep .NET App Running in Docker","author":"CPI Staff","date":"September 8, 2025","format":false,"excerpt":"Learn how to containerise a .NET app, start it automatically, and keep it running with Docker and Docker Compose\u2014production-friendly, developer-happy.","rel":"","context":"In &quot;.NET&quot;","block_context":{"text":".NET","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/net\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/09\/keep-your-net-app-running-in-docker-the-right-way-with-compose.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/09\/keep-your-net-app-running-in-docker-the-right-way-with-compose.png 1x, \/wp-content\/uploads\/2025\/09\/keep-your-net-app-running-in-docker-the-right-way-with-compose.png 1.5x, \/wp-content\/uploads\/2025\/09\/keep-your-net-app-running-in-docker-the-right-way-with-compose.png 2x, \/wp-content\/uploads\/2025\/09\/keep-your-net-app-running-in-docker-the-right-way-with-compose.png 3x, \/wp-content\/uploads\/2025\/09\/keep-your-net-app-running-in-docker-the-right-way-with-compose.png 4x"},"classes":[]},{"id":53823,"url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/15\/connecting-to-a-running-container-terminal\/","url_meta":{"origin":53777,"position":1},"title":"Connecting to a Running Container Terminal","author":"CPI Staff","date":"September 15, 2025","format":false,"excerpt":"Learn practical ways to attach a shell to running containers in Docker and Kubernetes, when to use them, and how to stay safe in production.","rel":"","context":"In &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/blog\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/09\/connecting-to-a-running-container-terminal-in-docker-and-kubernetes.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/09\/connecting-to-a-running-container-terminal-in-docker-and-kubernetes.png 1x, \/wp-content\/uploads\/2025\/09\/connecting-to-a-running-container-terminal-in-docker-and-kubernetes.png 1.5x, \/wp-content\/uploads\/2025\/09\/connecting-to-a-running-container-terminal-in-docker-and-kubernetes.png 2x, \/wp-content\/uploads\/2025\/09\/connecting-to-a-running-container-terminal-in-docker-and-kubernetes.png 3x, \/wp-content\/uploads\/2025\/09\/connecting-to-a-running-container-terminal-in-docker-and-kubernetes.png 4x"},"classes":[]},{"id":53794,"url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/10\/how-to-share-volumes-between-docker-containers\/","url_meta":{"origin":53777,"position":2},"title":"How to Share Volumes Between Docker Containers","author":"CPI Staff","date":"September 10, 2025","format":false,"excerpt":"Learn practical ways to share data between Docker containers using named volumes, bind mounts and Compose, with clear steps, permissions guidance, and security tips for reliable, high\u2011performance sharing.","rel":"","context":"In &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/blog\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/09\/how-to-share-volumes-between-docker-containers-safely-and-reliably.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/09\/how-to-share-volumes-between-docker-containers-safely-and-reliably.png 1x, \/wp-content\/uploads\/2025\/09\/how-to-share-volumes-between-docker-containers-safely-and-reliably.png 1.5x, \/wp-content\/uploads\/2025\/09\/how-to-share-volumes-between-docker-containers-safely-and-reliably.png 2x, \/wp-content\/uploads\/2025\/09\/how-to-share-volumes-between-docker-containers-safely-and-reliably.png 3x, \/wp-content\/uploads\/2025\/09\/how-to-share-volumes-between-docker-containers-safely-and-reliably.png 4x"},"classes":[]},{"id":53803,"url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/11\/the-benefits-of-using-docker-compose-for-teams-and-projects\/","url_meta":{"origin":53777,"position":3},"title":"The Benefits of Using Docker Compose for Teams and Projects","author":"CPI Staff","date":"September 11, 2025","format":false,"excerpt":"Learn how Docker Compose streamlines multi-container development, testing, and CI. Practical steps, examples, and best practices for technical teams.","rel":"","context":"In &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/blog\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/09\/the-benefits-of-using-docker-compose-for-teams-and-projects.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/09\/the-benefits-of-using-docker-compose-for-teams-and-projects.png 1x, \/wp-content\/uploads\/2025\/09\/the-benefits-of-using-docker-compose-for-teams-and-projects.png 1.5x, \/wp-content\/uploads\/2025\/09\/the-benefits-of-using-docker-compose-for-teams-and-projects.png 2x, \/wp-content\/uploads\/2025\/09\/the-benefits-of-using-docker-compose-for-teams-and-projects.png 3x, \/wp-content\/uploads\/2025\/09\/the-benefits-of-using-docker-compose-for-teams-and-projects.png 4x"},"classes":[]},{"id":53820,"url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/15\/host-and-run-a-website-inside-docker-for-fast-portable-deploys\/","url_meta":{"origin":53777,"position":4},"title":"Host and Run a Website inside Docker for Fast, Portable Deploys","author":"CPI Staff","date":"September 15, 2025","format":false,"excerpt":"Learn how to containerise, serve, and secure a website with Docker. From first run to production-ready patterns, this guide covers images, volumes, networks, and TLS.","rel":"","context":"In &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/blog\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/09\/host-and-run-a-website-inside-docker-for-fast-portable-deploys.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/09\/host-and-run-a-website-inside-docker-for-fast-portable-deploys.png 1x, \/wp-content\/uploads\/2025\/09\/host-and-run-a-website-inside-docker-for-fast-portable-deploys.png 1.5x, \/wp-content\/uploads\/2025\/09\/host-and-run-a-website-inside-docker-for-fast-portable-deploys.png 2x, \/wp-content\/uploads\/2025\/09\/host-and-run-a-website-inside-docker-for-fast-portable-deploys.png 3x, \/wp-content\/uploads\/2025\/09\/host-and-run-a-website-inside-docker-for-fast-portable-deploys.png 4x"},"classes":[]},{"id":53420,"url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/06\/25\/containerize-a-blazor-net-application\/","url_meta":{"origin":53777,"position":5},"title":"Containerize a Blazor .NET Application","author":"CPI Staff","date":"June 25, 2025","format":false,"excerpt":"In this blog post, we will show you how to containerize a Blazor .NET application using native tools\u2014without relying on third-party scripts or complex setups. Microsoft .NET is one of the most popular development frameworks today, offering a wide range of deployment options. Running applications in containers and adopting microservices\u2026","rel":"","context":"In &quot;.NET&quot;","block_context":{"text":".NET","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/net\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/02\/How-to-Add-Bootstrap-to-a-.NET-Blazor-9-Web-Application.webp","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/02\/How-to-Add-Bootstrap-to-a-.NET-Blazor-9-Web-Application.webp 1x, \/wp-content\/uploads\/2025\/02\/How-to-Add-Bootstrap-to-a-.NET-Blazor-9-Web-Application.webp 1.5x, \/wp-content\/uploads\/2025\/02\/How-to-Add-Bootstrap-to-a-.NET-Blazor-9-Web-Application.webp 2x, \/wp-content\/uploads\/2025\/02\/How-to-Add-Bootstrap-to-a-.NET-Blazor-9-Web-Application.webp 3x, \/wp-content\/uploads\/2025\/02\/How-to-Add-Bootstrap-to-a-.NET-Blazor-9-Web-Application.webp 4x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/53777","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/comments?post=53777"}],"version-history":[{"count":1,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/53777\/revisions"}],"predecessor-version":[{"id":53779,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/53777\/revisions\/53779"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/media\/53778"}],"wp:attachment":[{"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/media?parent=53777"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/categories?post=53777"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/tags?post=53777"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}