{"id":13624,"date":"2026-03-11T10:51:32","date_gmt":"2026-03-11T05:21:32","guid":{"rendered":"https:\/\/www.youstable.com\/blog\/?p=13624"},"modified":"2026-03-11T10:51:34","modified_gmt":"2026-03-11T05:21:34","slug":"fix-docker-on-linux","status":"publish","type":"post","link":"https:\/\/www.youstable.com\/blog\/fix-docker-on-linux","title":{"rendered":"How to Fix Docker on Linux Server? Docker Recovery Guide"},"content":{"rendered":"\n<p><strong>To fix Docker on a Linux server<\/strong>, start by verifying the Docker daemon is running, reading logs, checking disk space and permissions, then resolve common culprits: daemon.json syntax, firewall and iptables rules, storage driver errors, DNS, and cgroups. Restart services, prune unused data, or reinstall Docker as a last resort.<\/p>\n\n\n\n<p>If you\u2019re searching for how to fix Docker on Linux server, this guide gives you a clear, step by step troubleshooting workflow that covers service status, logs, permissions, storage drivers, firewalls, DNS, cgroups, and safe cleanup. I\u2019ll also share real world fixes I use on production servers to get Docker stable fast.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"quick-answer-fix-docker-on-linux-server-in-10-steps\">Quick Answer: Fix Docker on Linux Server in 10 Steps<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Check Docker service:<\/strong> status, start, enable at boot.<\/li>\n\n\n\n<li>Read logs with journalctl to spot errors early.<\/li>\n\n\n\n<li>Verify socket permissions and add your user to the docker group.<\/li>\n\n\n\n<li>Validate \/etc\/docker\/daemon.json syntax.<\/li>\n\n\n\n<li>Check disk space\/inodes and storage driver (overlay2).<\/li>\n\n\n\n<li><strong>Fix network:<\/strong> iptables\/UFW\/firewalld, DNS, and IP forwarding.<\/li>\n\n\n\n<li>Resolve cgroups v1\/v2 and kernel module issues.<\/li>\n\n\n\n<li>Prune unused images\/volumes to free space.<\/li>\n\n\n\n<li>Restart Docker and containerd cleanly.<\/li>\n\n\n\n<li>As a last resort, back up and reinstall Docker.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"diagnose-first-is-the-docker-daemon-running\">Diagnose First: Is the Docker Daemon Running?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"check-service-status-and-enable-it\">Check service status and enable it<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Check status\nsudo systemctl status docker\n\n# Start and enable on boot\nsudo systemctl start docker\nsudo systemctl enable docker\n\n# If containerd is required but down\nsudo systemctl status containerd\nsudo systemctl start containerd<\/code><\/pre>\n\n\n\n<p>If Docker won\u2019t start, the status output typically references a root cause (storage driver failure, invalid config, missing kernel module, or permission issues). Capture the <a href=\"https:\/\/www.youstable.com\/blog\/fix-error-establishing-database-connection\/\">error message to guide your fix<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"read-docker-logs-for-clear-errors\">Read Docker logs for clear errors<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Review last hour of logs\nsudo journalctl -u docker --since -1h --no-pager\n\n# Full boot logs (if it dies during boot)\nsudo journalctl -b -u docker --no-pager<\/code><\/pre>\n\n\n\n<p>Look for lines mentioning overlay2, daemon.json, iptables, cgroup, DNS, or \u201cCannot connect to the Docker daemon.\u201d These keywords map to common fixes below.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"fix-socket-permissions-and-user-access\">Fix socket permissions and user access<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Is the socket present and permissions correct?\nls -l \/var\/run\/docker.sock\n\n# If you see \"permission denied\", add your user to the docker group\nsudo usermod -aG docker $USER\n# Apply group without logout (current shell only)\nnewgrp docker\n\n# Test\ndocker info<\/code><\/pre>\n\n\n\n<p>In secure environments, you may prefer sudo only access to Docker. If you intentionally avoid the docker group, always run docker commands with sudo.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"common-errors-and-reliable-fixes\">Common Errors and Reliable Fixes<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"cannot-connect-to-the-docker-daemon\">\u201cCannot connect to the Docker daemon\u201d<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ensure the service is running:<\/strong> <em>systemctl status docker<\/em>.<\/li>\n\n\n\n<li>Fix socket permissions or add your user to the docker group.<\/li>\n\n\n\n<li>If using rootless Docker, ensure <em>dockerd-rootless-setuptool.sh<\/em> was run and your environment variables are set.<\/li>\n\n\n\n<li>Verify DOCKER_HOST is not pointing to a wrong socket or TCP endpoint.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"docker-fails-after-upgrade-stuck-or-wont-start\">Docker fails after upgrade (stuck or won\u2019t start)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Validate daemon.json (must be valid JSON)\nsudo cat \/etc\/docker\/daemon.json | jq .  # or use python -m json.tool\n\n# Remove stale PID file if present\nsudo rm -f \/var\/run\/docker.pid\n\n# Reload units and restart\nsudo systemctl daemon-reload\nsudo systemctl restart docker\nsudo systemctl status docker<\/code><\/pre>\n\n\n\n<p>Compare your Docker version with containerd. A mismatch can break startup. If logs mention containerd, upgrade both from the same repo (Docker Engine or distro packages) to keep them compatible.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"storage-driver-and-disk-space-overlay2\">Storage driver and disk space (overlay2)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># <a href=\"https:\/\/www.youstable.com\/blog\/check-disk-space-files-in-linux\">Check disk space<\/a> and inodes\ndf -h\ndf -i\n\n# See Docker space usage\ndocker system df\n\n# Prune unused data (confirm prompts)\ndocker system prune\ndocker image prune -a\ndocker volume prune\ndocker network prune<\/code><\/pre>\n\n\n\n<p>If overlay2 errors appear, ensure your kernel has the overlay module loaded and the filesystem supports d_type. XFS without d_type causes overlay2 failures.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Load required modules\nsudo modprobe overlay\nsudo modprobe br_netfilter\n\n# Check XFS d_type (should be ftype=1)\nxfs_info \/var\/lib\/docker 2&gt;&amp;1 | grep ftype<\/code><\/pre>\n\n\n\n<p>If ftype=0, migrate Docker\u2019s data root to a partition with ftype=1 (or ext4), then restart Docker. Avoid devicemapper legacy unless you understand its implications.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"network-and-dns-cant-pull-images-or-containers-cant-resolve\">Network and DNS: can\u2019t pull images or containers can\u2019t resolve<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verify outbound connectivity and DNS on the host: <em>dig<\/em> or <em>nslookup<\/em>.<\/li>\n\n\n\n<li>Override DNS inside Docker if host resolv.conf is unusual (e.g., systemd resolved).<\/li>\n\n\n\n<li>Allow IP forwarding and ensure FORWARD policy isn\u2019t DROP.<\/li>\n\n\n\n<li>Align Docker iptables with your firewall (UFW, firewalld, nftables).<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># Example daemon.json with DNS and log limits\nsudo tee \/etc\/docker\/daemon.json &gt;\/dev\/null &lt;&lt;'JSON'\n{\n  \"dns\": &#91;\"1.1.1.1\",\"8.8.8.8\"],\n  \"log-driver\": \"json-file\",\n  \"log-opts\": { \"max-size\": \"10m\", \"max-file\": \"3\" }\n}\nJSON\n\nsudo systemctl restart docker\n\n# Enable IP forwarding\nsudo sysctl -w net.ipv4.ip_forward=1\n# Persist settings\necho 'net.ipv4.ip_forward=1' | sudo tee \/etc\/sysctl.d\/99-docker-ipforward.conf\nsudo sysctl --system<\/code><\/pre>\n\n\n\n<p>If UFW is active, set DEFAULT_FORWARD_POLICY=\u201cACCEPT\u201d in \/etc\/default\/ufw and allow Docker\u2019s bridge subnet or disable Docker\u2019s <a href=\"https:\/\/www.youstable.com\/blog\/what-is-iptables-linux-access-manage\/\">iptables management<\/a> and write your own rules.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"firewalls-ufw-firewalld-nftables-conflicts\">Firewalls: UFW, firewalld, nftables conflicts<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># UFW: forward policy and bridge allowance\nsudo sed -i 's\/^DEFAULT_FORWARD_POLICY=.*\/DEFAULT_FORWARD_POLICY=\"ACCEPT\"\/' \/etc\/default\/ufw\nsudo ufw allow 2375\/tcp  # only if you intentionally expose (not recommended without TLS)\nsudo ufw reload\n\n# firewalld: trust docker zone or allow masquerade\nsudo firewall-cmd --permanent --zone=trusted --add-interface=docker0\nsudo firewall-cmd --permanent --add-masquerade\nsudo firewall-cmd --reload\n\n# If nftables is default, ensure iptables-legacy is used when required\nsudo update-alternatives --config iptables  # choose legacy if Docker expects it\nsudo systemctl restart docker<\/code><\/pre>\n\n\n\n<p>Prefer not exposing the Docker daemon over TCP unless you enable TLS. Use a socket or SSH tunnel for remote management.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"cgroups-v2-incompatibility-and-kernel-issues\">cgroups v2 incompatibility and kernel issues<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Modern Docker and containerd support cgroups v2. Update both if you\u2019re on older releases.<\/li>\n\n\n\n<li>If you must revert to cgroups v1 temporarily, add the kernel parameter <em>systemd.unified_cgroup_hierarchy=0<\/em> and reboot.<\/li>\n\n\n\n<li>Ensure required modules are present: <em>overlay<\/em>, <em>br_netfilter<\/em>.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># Quick module check\nlsmod | egrep 'overlay|br_netfilter'\nsudo modprobe overlay br_netfilter<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"safely-clean-up-docker-to-free-space\">Safely Clean Up Docker to Free Space<\/h2>\n\n\n\n<p>Excess images, stopped containers, dangling volumes, and large logs commonly break Docker with no space left on device or inode exhaustion. Clean up deliberately.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Review space usage first\ndocker system df\ndocker image ls --digests\ndocker volume ls\n\n# Remove everything unused (interactive)\ndocker system prune\ndocker system prune -a  # also removes unused images\ndocker volume prune\ndocker network prune<\/code><\/pre>\n\n\n\n<p>For production, implement log rotation and avoid unbounded container logs. The example daemon.json above caps log <a href=\"https:\/\/www.youstable.com\/blog\/how-to-increase-file-upload-size-in-directadmin-2\/\">size and files<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"validate-configuration-daemon-json-and-systemd\">Validate Configuration: daemon.json and systemd<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.youstable.com\/blog\/how-to-fix-the-invalid-json-error-in-wordpress-website\/\">Invalid JSON<\/a> or conflicting options in \/etc\/docker\/daemon.json will stop Docker from starting. Keep it minimal and validate after changes.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Validate config\nsudo jq . \/etc\/docker\/daemon.json\n\n# After editing, reload and restart\nsudo systemctl daemon-reload\nsudo systemctl restart docker\nsudo systemctl status docker<\/code><\/pre>\n\n\n\n<p>If you modified the systemd unit, consider using a drop in override instead of editing the main file. This avoids breaking upgrades.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Create a drop-in and set <a href=\"https:\/\/www.youstable.com\/blog\/fix-resource-limit-reached-error\">resource limits<\/a> or startup dependencies\nsudo systemctl edit docker\n# Then:\nsudo systemctl daemon-reload\nsudo systemctl restart docker<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"last-resort-reset-or-reinstall-docker\">Last Resort: Reset or Reinstall Docker<\/h2>\n\n\n\n<p>When the installation is deeply corrupted, back up and reinstall. Preserve or move \/var\/lib\/docker if you need to keep images and volumes.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Stop services\nsudo systemctl stop docker containerd\n\n# Optional: back up Docker data\nsudo rsync -aHAX --info=progress2 \/var\/lib\/docker\/ \/backup\/docker-$(date +%F)\/\n\n# Debian\/Ubuntu: remove and install cleanly\nsudo apt-get purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\nsudo rm -rf \/var\/lib\/docker \/var\/lib\/containerd\nsudo apt-get update\nsudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\n\n# RHEL\/CentOS\/Rocky\/Alma\nsudo dnf remove -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\nsudo rm -rf \/var\/lib\/docker \/var\/lib\/containerd\nsudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\n\nsudo systemctl enable --now docker\ndocker info<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"best-practices-to-prevent-future-docker-outages\">Best Practices to Prevent Future Docker Outages<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pin compatible versions of Docker and containerd; upgrade during maintenance windows.<\/li>\n\n\n\n<li>Keep kernel updated and ensure overlay and br_netfilter modules load at boot.<\/li>\n\n\n\n<li>Apply log rotation and prune schedules to prevent disk exhaustion.<\/li>\n\n\n\n<li>Use a dedicated filesystem with XFS ftype=1 or ext4 for \/var\/lib\/docker.<\/li>\n\n\n\n<li>Document firewall rules; explicitly allow IP forwarding and NAT.<\/li>\n\n\n\n<li>Monitor docker.service, disk, inodes, and error logs via your observability stack.<\/li>\n\n\n\n<li>Avoid editing unit files directly; use systemd drop-ins for overrides.<\/li>\n\n\n\n<li><strong>Secure the daemon: <\/strong>don\u2019t expose it over TCP without TLS; prefer the Unix socket.<\/li>\n<\/ul>\n\n\n\n<p>Need hands free reliability? On <strong><a href=\"https:\/\/www.youstable.com\/\">YouStable VPS or Dedicated Servers<\/a><\/strong>, our support team can audit your Docker stack, configure best practices, and harden networking so your containers run smoothly under load.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"troubleshooting-checklist-copy-paste\">Troubleshooting Checklist (Copy\/Paste)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>systemctl status docker; journalctl -u docker<\/li>\n\n\n\n<li>ls -l \/var\/run\/docker.sock; usermod -aG docker $USER<\/li>\n\n\n\n<li>jq . \/etc\/docker\/daemon.json<\/li>\n\n\n\n<li>df -h; df -i; docker system df<\/li>\n\n\n\n<li>modprobe overlay br_netfilter; sysctl net.ipv4.ip_forward=1<\/li>\n\n\n\n<li>Review firewall (UFW\/firewalld) and FORWARD policy<\/li>\n\n\n\n<li>Test DNS; optionally set DNS in daemon.json<\/li>\n\n\n\n<li>docker system prune (carefully); set log limits<\/li>\n\n\n\n<li>Restart docker and containerd; daemon reload if units changed<\/li>\n\n\n\n<li>If still broken, back up \/var\/lib\/docker and reinstall<\/li>\n<\/ul>\n\n\n\n<p class=\"has-ast-global-color-1-background-color has-background\"><strong>Also Read: <a href=\"https:\/\/www.youstable.com\/blog\/enlarge-image-without-losing-quality\">Enlarge Image Without Losing Quality<\/a><\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"faqs\">FAQs<\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1765860747652\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"why-does-docker-say-cannot-connect-to-the-docker-daemon-on-linux\">Why does Docker say \u201cCannot connect to the Docker daemon\u201d on Linux?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>The daemon may be stopped, your user may lack access to \/var\/run\/docker.sock, or DOCKER_HOST points to a wrong endpoint. Start the service, add your user to the docker group (or use sudo), and verify the socket path. Check logs for storage or config errors blocking startup.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765860761722\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"how-do-i-fix-docker-pull-failures-and-dns-timeouts\">How do I fix Docker pull failures and DNS timeouts?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Confirm the host can resolve and reach registries. If resolv.conf is managed by systemd resolved or a corporate DNS, set explicit DNS servers in \/etc\/docker\/daemon.json and restart Docker. Also verify firewalls and outbound egress rules aren\u2019t blocking registry endpoints.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765860775700\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"what-storage-driver-issues-break-docker-on-linux\">What storage driver issues break Docker on Linux?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>overlay2 fails if the filesystem doesn\u2019t support d_type (XFS ftype=1 is required) or if kernel modules are missing. Disk or inode exhaustion is also common. Free space with docker system prune, confirm overlay is loaded, and consider moving \/var\/lib\/docker to a proper filesystem.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765860786642\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"how-do-i-fix-docker-after-an-os-or-kernel-upgrade\">How do I fix Docker after an OS or kernel upgrade?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Update Docker and containerd to compatible versions, load necessary kernel modules (overlay, br_netfilter), and check cgroups v2 support. Validate daemon.json, remove stale PID files, run systemctl daemon reload, then restart Docker. Read journal logs to catch remaining mismatches.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765860802404\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"is-it-safe-to-use-docker-system-prune-on-production\">Is it safe to use docker system prune on production?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes, if you understand what\u2019s removed. Prune deletes unused containers, networks, dangling images, and optionally all unused images. Never prune during deployments, and always verify docker system df first. For mission critical hosts, schedule maintenance windows and keep backups.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>To fix Docker on a Linux server, start by verifying the Docker daemon is running, reading logs, checking disk space [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":19071,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[350],"tags":[],"class_list":["post-13624","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knowledgebase"],"acf":[],"featured_image_src":"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/How-to-Fix-Docker-on-Linux-Server.jpg","author_info":{"display_name":"Sanjeet Chauhan","author_link":"https:\/\/www.youstable.com\/blog\/author\/sanjeet"},"_links":{"self":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/13624","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/comments?post=13624"}],"version-history":[{"count":7,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/13624\/revisions"}],"predecessor-version":[{"id":19433,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/13624\/revisions\/19433"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media\/19071"}],"wp:attachment":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media?parent=13624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/categories?post=13624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/tags?post=13624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}