{"id":12800,"date":"2025-12-20T12:32:17","date_gmt":"2025-12-20T07:02:17","guid":{"rendered":"https:\/\/www.youstable.com\/blog\/?p=12800"},"modified":"2025-12-20T12:32:20","modified_gmt":"2025-12-20T07:02:20","slug":"how-to-configure-docker-on-linux","status":"publish","type":"post","link":"https:\/\/www.youstable.com\/blog\/how-to-configure-docker-on-linux","title":{"rendered":"How to Configure Docker on Linux Server &#8211; (Step-by-Step Guide 2026)"},"content":{"rendered":"\n<p><strong>To configure Docker on a Linux server<\/strong>, install the Docker Engine from the official repository, add your user to the docker group, enable Docker to start on boot, and harden the daemon via \/etc\/docker\/daemon.json. Then set up networking, logging, and Docker Compose for multi-container apps, followed by ongoing updates, monitoring, and cleanup.<\/p>\n\n\n\n<p>In this step-by-step guide, you\u2019ll learn how to configure Docker on a Linux server the right way for 2026 and beyond. We\u2019ll cover installation on Ubuntu\/Debian and RHEL-based distros, secure daemon settings, user permissions, networking, <a href=\"https:\/\/www.youstable.com\/blog\/install-n8n-on-docker\/\">Docker Compose<\/a>, logging, metrics, and real-world best practices used in hosting environments.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"what-youll-need-prerequisites\"><strong>What You\u2019ll Need (Prerequisites)<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A Linux server (Ubuntu 22.04\/24.04+, Debian 12+, or RHEL\/CentOS\/AlmaLinux\/Rocky 8\/9+)<\/li>\n\n\n\n<li>sudo privileges (or root)<\/li>\n\n\n\n<li>Outbound internet access to Docker\u2019s repositories<\/li>\n\n\n\n<li>Open ports for your apps (e.g., 80\/443 for web)<\/li>\n\n\n\n<li>Basic familiarity with the Linux CLI<\/li>\n<\/ul>\n\n\n\n<p>Primary keyword focus: configure Docker on Linux server. Secondary keywords used naturally: install Docker on Ubuntu, Docker Compose, secure Docker daemon, Linux server hardening.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-1-install-docker-on-linux-2026-ready\"><strong>Step 1: Install Docker on Linux (2026-Ready)<\/strong><\/h2>\n\n\n\n<p>The safest method is to use the official Docker repositories so you get current, signed packages: docker-ce (Engine), docker-ce-cli, containerd.io, and the Docker Compose plugin.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"ubuntu-debian\"><strong>Ubuntu\/Debian<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get update\nsudo apt-get install -y ca-certificates curl gnupg lsb-release\n\n# Add Docker\u2019s official GPG key and repo\nsudo install -m 0755 -d \/etc\/apt\/keyrings\ncurl -fsSL https:\/\/download.docker.com\/linux\/$(. \/etc\/os-release &amp;&amp; echo $ID)\/gpg | sudo gpg --dearmor -o \/etc\/apt\/keyrings\/docker.gpg\necho \\\n  \"deb &#91;arch=$(dpkg --print-architecture) signed-by=\/etc\/apt\/keyrings\/docker.gpg] \\\n  https:\/\/download.docker.com\/linux\/$(. \/etc\/os-release &amp;&amp; echo $ID) \\\n  $(. \/etc\/os-release &amp;&amp; echo $VERSION_CODENAME) stable\" | \\\n  sudo tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null\n\nsudo apt-get update\nsudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"rhel-centos-almalinux-rocky\"><strong>RHEL\/CentOS\/AlmaLinux\/Rocky<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf -y install ca-certificates curl gnupg2\nsudo dnf -y install dnf-plugins-core\nsudo dnf config-manager --add-repo https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo\n\nsudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\n# Start and enable Docker\nsudo systemctl enable --now docker<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"verify-the-installation\"><strong>Verify the Installation<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status docker\ndocker --version\ndocker compose version\nsudo docker run --rm hello-world<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-2-post-install-setup-non-root-user-autostart\"><strong>Step 2: Post-Install Setup (Non-Root User, Autostart)<\/strong><\/h2>\n\n\n\n<p>By default, Docker commands require sudo. To run Docker as a non-root user, add your user to the docker group and enable Docker on boot.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Add your user to the docker group\nsudo usermod -aG docker $USER\n# Log out and back in (or run newgrp docker) to apply\n\n# Enable on boot and start now\nsudo systemctl enable --now docker<\/code><\/pre>\n\n\n\n<p>If you still see \u201cpermission denied,\u201d ensure your session is refreshed (reboot or re-login) and verify with docker ps.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-3-secure-and-tune-the-docker-daemon\"><strong>Step 3: Secure and Tune the Docker Daemon<\/strong><\/h2>\n\n\n\n<p>Harden the daemon via \/etc\/docker\/daemon.json. Configure logging, cgroups, storage, and security features that reduce risk in production environments.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"create-or-edit-etc-docker-daemon-json\"><strong>Create or Edit \/etc\/docker\/daemon.json<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir -p \/etc\/docker\nsudo tee \/etc\/docker\/daemon.json &gt; \/dev\/null &lt;&lt; 'EOF'\n{\n  \"log-driver\": \"json-file\",\n  \"log-opts\": {\n    \"max-size\": \"10m\",\n    \"max-file\": \"3\"\n  },\n  \"storage-driver\": \"overlay2\",\n  \"exec-opts\": &#91;\"native.cgroupdriver=systemd\"],\n  \"live-restore\": true,\n  \"userns-remap\": \"default\",\n  \"no-new-privileges\": true,\n  \"default-address-pools\": &#91;\n    {\"base\":\"10.10.0.0\/16\",\"size\":24}\n  ]\n}\nEOF\n\n# Restart and validate\nsudo systemctl restart docker\ndocker info | grep -E 'Cgroup|Storage Driver|Logging Driver'<\/code><\/pre>\n\n\n\n<p>Highlights: log rotation prevents disk bloat; overlay2 is the modern storage driver; systemd cgroup driver aligns with current Linux defaults; live-restore limits container downtime during daemon upgrades; user namespace remapping reduces container privilege risks; default-address-pools avoids network overlap in multi-bridge setups.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"optional-rootless-docker-extra-isolation\"><strong>Optional: Rootless Docker (Extra Isolation)<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Install rootless prerequisites\nsudo apt-get install -y uidmap dbus-user-session  # Debian\/Ubuntu\n# or: sudo dnf -y install shadow-utils\n\ndockerd-rootless-setuptool.sh install\nsystemctl --user enable --now docker\nexport DOCKER_HOST=unix:\/\/\/run\/user\/$(id -u)\/docker.sock\n\ndocker info | grep Rootless<\/code><\/pre>\n\n\n\n<p>Rootless improves security by removing root privileges from the Engine, though some networking features may be limited. Use for multi-tenant environments or strict compliance needs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"firewall-rules-ufw-or-firewalld\"><strong>Firewall Rules (UFW or firewalld)<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># UFW examples\nsudo ufw allow 22\/tcp\nsudo ufw allow 80,443\/tcp\nsudo ufw enable\nsudo ufw status\n\n# firewalld examples\nsudo firewall-cmd --permanent --add-service=http\nsudo firewall-cmd --permanent --add-service=https\nsudo firewall-cmd --reload<\/code><\/pre>\n\n\n\n<p>Docker manipulates iptables rules; always test your firewall with running containers to ensure traffic flows as intended.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-4-docker-networking-basics-bridges-and-custom-networks\"><strong>Step 4: Docker Networking Basics (Bridges and Custom Networks)<\/strong><\/h2>\n\n\n\n<p>By default, Docker uses the bridge network (docker0). For production, create user-defined bridge networks per app stack for predictable IP ranges, DNS-based service discovery, and easier policy control.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Create a custom bridge network with a fixed subnet\ndocker network create --driver bridge \\\n  --subnet 10.10.10.0\/24 --gateway 10.10.10.1 \\\n  app_net\n\n# Attach containers to this network\ndocker run -d --name web --network app_net -p 80:80 nginx:alpine\ndocker run -d --name api --network app_net myorg\/api:latest<\/code><\/pre>\n\n\n\n<p>The default-address-pools in daemon.json ensures Docker auto-allocates non-overlapping subnets, useful on hosts running multiple custom networks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-5-docker-compose-v2-plugin\"><strong>Step 5: Docker Compose v2 (Plugin)<\/strong><\/h2>\n\n\n\n<p>Compose simplifies multi-container apps. Starting with modern releases, docker compose is a plugin (no separate Python binary). Test with docker compose version, then deploy a simple stack. Example: a production-ready <a href=\"https:\/\/www.youstable.com\/blog\/convert-a-wordpress-site-to-a-static-html-website\/\">WordPress and MariaDB stack for a small site<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p ~\/stacks\/wordpress &amp;&amp; cd ~\/stacks\/wordpress\ncat &gt; docker-compose.yml &lt;&lt; 'YAML'\nversion: \"3.9\"\nservices:\n  db:\n    image: mariadb:11\n    environment:\n      MYSQL_DATABASE: wordpress\n      MYSQL_USER: wpuser\n      MYSQL_PASSWORD: strong_db_pass\n      MYSQL_ROOT_PASSWORD: stronger_root_pass\n    volumes:\n      - db_data:\/var\/lib\/mysql\n    networks:\n      - wp_net\n    healthcheck:\n      test: &#91;\"CMD\",\"mysqladmin\",\"ping\",\"-h\",\"localhost\"]\n      interval: 10s\n      retries: 5\n\n  wordpress:\n    image: wordpress:php8.2-fpm\n    environment:\n      WORDPRESS_DB_HOST: db:3306\n      WORDPRESS_DB_USER: wpuser\n      WORDPRESS_DB_PASSWORD: strong_db_pass\n      WORDPRESS_DB_NAME: wordpress\n    volumes:\n      - wp_data:\/var\/www\/html\n    depends_on:\n      db:\n        condition: service_healthy\n    networks:\n      - wp_net\n\n  nginx:\n    image: nginx:alpine\n    volumes:\n      - wp_data:\/var\/www\/html:ro\n      - .\/nginx.conf:\/etc\/nginx\/conf.d\/default.conf:ro\n    ports:\n      - \"80:80\"\n      - \"443:443\"\n    depends_on:\n      - wordpress\n    networks:\n      - wp_net\n\nvolumes:\n  db_data:\n  wp_data:\n\nnetworks:\n  wp_net:\n    driver: bridge\nYAML\n\n# Bring the stack up\ndocker compose up -d\ndocker compose ps<\/code><\/pre>\n\n\n\n<p>Add TLS to NGINX and tune PHP-FPM for best performance. For higher availability, consider an external managed database and object storage.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-6-logging-metrics-and-cleanup\"><strong>Step 6: Logging, Metrics, and Cleanup<\/strong><\/h2>\n\n\n\n<p>Effective operations require log rotation, metrics scraping, and routine image\/container cleanup.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Logs: <\/strong>You enabled the json-file driver with rotation. Inspect with docker logs container.<\/li>\n\n\n\n<li><strong>Metrics: <\/strong>Expose cAdvisor or use Docker\u2019s events API. For Prometheus, add node_exporter and cadvisor to your compose stack.<\/li>\n\n\n\n<li><strong>Cleanup: <\/strong>Periodically reclaim space.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># Remove stopped containers, dangling images, unused networks\ndocker system prune -f\n# More aggressive (also removes unused volumes)\ndocker system prune -a --volumes -f\n\n# <a href=\"https:\/\/www.youstable.com\/blog\/check-disk-space-files-in-linux\/\">Check space usage<\/a>\ndocker system df<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-7-optional-secure-remote-api-tls\"><strong>Step 7: Optional \u2014 Secure Remote API (TLS)<\/strong><\/h2>\n\n\n\n<p>Avoid binding the Docker API to 0.0.0.0 without TLS. If you need remote management, enable TCP with certificates and firewall restrictions. SSH tunneling is often simpler and safer.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Example daemon.json additions (use real cert paths and client certs)\n{\n  \"hosts\": &#91;\"fd:\/\/\",\"tcp:\/\/0.0.0.0:2376\"],\n  \"tls\": true,\n  \"tlscacert\": \"\/etc\/docker\/certs\/ca.pem\",\n  \"tlscert\": \"\/etc\/docker\/certs\/server-cert.pem\",\n  \"tlskey\": \"\/etc\/docker\/certs\/server-key.pem\",\n  \"tlsverify\": true\n}\n# Then restrict 2376 at the firewall to trusted IPs only.<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"troubleshooting-and-common-errors\"><strong>Troubleshooting and Common Errors<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Permission denied (dial unix \/var\/run\/docker.sock): <\/strong>Add user to docker, re-login, confirm with groups.<\/li>\n\n\n\n<li><strong>cgroup v2 issues: <\/strong>Ensure systemd cgroup driver is set (exec-opts) and system has unified cgroup hierarchy enabled (modern distros do).<\/li>\n\n\n\n<li><strong>Out of disk space: <\/strong>Verify log rotation, clean old images (docker image prune -a), move Docker data-root to a larger disk.<\/li>\n\n\n\n<li><strong>Port conflicts: <\/strong>Use docker ps to find bound ports; re-map with -p host:container or change NGINX listen ports.<\/li>\n\n\n\n<li><strong>Network overlap: <\/strong>Use default-address-pools to avoid 172.17.0.0\/16 collisions or define custom subnets per network.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"real-world-best-practices-from-hosting-experience\"><strong>Real-World Best Practices from Hosting Experience<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pin image versions (e.g., nginx:1.27-alpine) to avoid surprise upgrades; schedule maintenance windows for updates.<\/li>\n\n\n\n<li>Enable Docker Content Trust (export DOCKER_CONTENT_TRUST=1) and scan images with your CI to reduce supply-chain risk.<\/li>\n\n\n\n<li>Use healthchecks in Compose so reverse proxies don\u2019t route to unhealthy containers.<\/li>\n\n\n\n<li>Separate state: Keep databases on <a href=\"https:\/\/www.youstable.com\/blog\/benefits-of-fully-managed-dedicated-server\/\">managed services or dedicated<\/a> volumes\/snapshots for easy backup and restore.<\/li>\n\n\n\n<li>Private registry and cache: Use a private registry or registry mirror to speed up pulls and control provenance.<\/li>\n\n\n\n<li>Least privilege: Use non-root container users where possible and read-only root filesystems for stateless services.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"when-to-choose-a-managed-vps-for-docker\"><strong>When to Choose a Managed VPS for Docker<\/strong><\/h2>\n\n\n\n<p>If you\u2019re deploying revenue-critical apps, a reliable infrastructure partner matters. At YouStable, our NVMe-powered VPS plans, dedicated firewalls, DDoS protection, and snapshot backups give Docker workloads the performance and resilience they deserve. You focus on containers; we\u2019ll handle the platform stability and 24\u00d77 support.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"faqs-configure-docker-on-linux-server\"><strong>FAQs: Configure Docker on Linux Server<\/strong><\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1765605360152\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"is-docker-free-to-use-on-linux\"><strong>Is Docker free to use on Linux?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes. Docker Engine Community Edition (CE) is free and open-source. For enterprise support, consider Docker subscriptions or a managed platform. Most small to mid-sized teams run Docker CE on Linux without cost.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765605369540\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"how-do-i-install-docker-on-ubuntu-22-04-or-24-04\"><strong>How do I install Docker on Ubuntu 22.04 or 24.04?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Add Docker\u2019s official GPG key and repository, then install docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin, and docker-compose-plugin via apt. The commands above under \u201cUbuntu\/Debian\u201d are 2026-ready and follow current best practices.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765605376283\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"how-do-i-run-docker-without-sudo\"><strong>How do I run Docker without sudo?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Add your user to the docker group with sudo usermod -aG docker $USER, then log out and back in (or run newgrp docker). Verify with docker ps. For even stronger isolation, consider rootless Docker.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765605383883\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"what-are-the-most-important-security-settings-for-docker\"><strong>What are the most important security settings for Docker?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Enable log rotation, userns-remap, no-new-privileges, and live-restore. Avoid exposing the remote API without TLS. Run containers as non-root when possible, and keep hosts patched. Use firewall rules and minimal images (alpine or distroless) to reduce attack surface.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765605392083\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"docker-or-podman-for-2026\"><strong>Docker or Podman for 2026?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Both are mature and OCI-compliant. Docker remains popular for Compose-based workflows and broad ecosystem support. Podman offers daemonless <a href=\"https:\/\/www.youstable.com\/blog\/best-server-os\/\">operation and tight SELinux integration on RHEL-based systems<\/a>. Choose based on tooling, workflows, and team familiarity.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"conclusion\">Conclusion<\/h2>\n\n\n\n<p>With the steps above, you can confidently configure Docker on a Linux server for production. Harden the daemon, define clean networks, adopt Compose for multi-service apps, and automate updates, backups, and monitoring. When you\u2019re ready to scale, a YouStable VPS provides the performance and reliability your containers need.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To configure Docker on a Linux server, install the Docker Engine from the official repository, add your user to the [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":15622,"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":""}},"iawp_total_views":18,"footnotes":""},"categories":[350],"tags":[],"class_list":["post-12800","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-Configure-Docker-on-Linux-Server.jpg","author_info":{"display_name":"Prahlad Prajapati","author_link":"https:\/\/www.youstable.com\/blog\/author\/prahladblog"},"_links":{"self":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/12800","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\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/comments?post=12800"}],"version-history":[{"count":5,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/12800\/revisions"}],"predecessor-version":[{"id":15625,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/12800\/revisions\/15625"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media\/15622"}],"wp:attachment":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media?parent=12800"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/categories?post=12800"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/tags?post=12800"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}