{"id":13338,"date":"2024-06-13T10:00:00","date_gmt":"2024-06-13T09:00:00","guid":{"rendered":"https:\/\/www.20i.com\/blog\/?p=13338"},"modified":"2025-12-10T10:16:16","modified_gmt":"2025-12-10T10:16:16","slug":"install-docker-on-vps","status":"publish","type":"post","link":"https:\/\/www.20i.com\/blog\/install-docker-on-vps\/","title":{"rendered":"How to install Docker on a VPS"},"content":{"rendered":"\n<div id=\"intro\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.docker.com\" target=\"_blank\" rel=\"noreferrer noopener\">Docker<\/a> is a tool that enables developers to build, run, verify and share projects within cohesive packages called Docker containers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In addition to the code; many applications and websites require additional elements like databases, configuration files, runtime libraries or third-party software to function properly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With Docker; instead of having to install and setup the application itself and then each dependency for every deployment; an end user can simply pull and run a Docker container and be ready to go.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.docker.com\/engine\/install\" target=\"_blank\" rel=\"noreferrer noopener\">Docker runs on x86, x64 and ARM<\/a> CPU architectures on macOS, Linux and Windows. Running apps from Docker containers means you don\u2019t need to spend time and resources creating, optimising and maintaining versions for all possible hardware and software combinations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Applications will run the same way on any device regardless of any architectural, OS or settings differences between the client machine and the original computer used to write and test the code.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6af28393771fb&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6af28393771fb\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2024\/06\/docker.gif\" alt=\"gif file of the Docker home page that flips between the Build, Share, Run and Verify tabs\" class=\"wp-image-13343\"\/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div id=\"why\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Why use Docker?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Docker is perfect for dev teams as it allows projects to be deployed across different environments and operating systems regardless of where it is built. If a project runs locally: it will run remotely too!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you regularly build applications with the same dependencies, you can create templates to avoid having to repeat the same steps over and over again.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Docker is very useful for web applications running on server-based software if you have decent command line chops. GUIs, like <a href=\"https:\/\/www.portainer.io\" target=\"_blank\" rel=\"noreferrer noopener\">Portainer<\/a>, can be installed on top of Docker with minimal performance impact for users who prefer a more visual workflow.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6af283937ad8f&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6af283937ad8f\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/08-Portainer.png.webp\" alt=\"Screenshot of the Portainer interface\" class=\"wp-image-13342\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/08-Portainer.png.webp 1920w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/08-Portainer-300x169.png.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/08-Portainer-768x432.png.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/08-Portainer-1536x864.png.webp 1536w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/08-Portainer-370x208.png.webp 370w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/08-Portainer-270x152.png.webp 270w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/08-Portainer-570x321.png.webp 570w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/08-Portainer-740x416.png.webp 740w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/08-Portainer-150x84.png.webp 150w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Portainer being used to manage Docker containers <\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">When you should use Docker<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Your projects need to run in different environments<\/li>\n\n\n\n<li>Your projects consist of many parts or dependencies<\/li>\n\n\n\n<li>Your hosting changes or may change in the future<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">When you shouldn\u2019t use Docker<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Your project is very small and simple<\/li>\n\n\n\n<li>Your project is a standard desktop application<\/li>\n<\/ul>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div id=\"vps\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6af283937c424&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6af283937c424\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/03-Docker-Platforms.png.webp\" alt=\"Screenshot of the Get Docker instructions page\" class=\"wp-image-13344\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/03-Docker-Platforms.png.webp 1920w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/03-Docker-Platforms-300x169.png.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/03-Docker-Platforms-768x432.png.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/03-Docker-Platforms-1536x864.png.webp 1536w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/03-Docker-Platforms-370x208.png.webp 370w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/03-Docker-Platforms-270x152.png.webp 270w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/03-Docker-Platforms-570x321.png.webp 570w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/03-Docker-Platforms-740x416.png.webp 740w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/03-Docker-Platforms-150x84.png.webp 150w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Docker&#8217;s desktop apps can be downloaded from <a href=\"https:\/\/docs.docker.com\/get-docker\" target=\"_blank\" rel=\"noreferrer noopener\">docs.docker.com\/get-docker<\/a><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Getting Docker on your VPS<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Docker runs natively on Linux (x86-64, ARM and many other CPU architectures) and Windows (x86-64) which means it can be installed on all of the operating systems we offer with our <a href=\"https:\/\/www.20i.com\/vps\" target=\"_blank\" rel=\"noreferrer noopener\">Virtual Private Servers (VPS)<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The installation process can differ slightly depending on the underlying operating system of your VPS, so we have included our most popular OS choices:<\/p>\n<\/div>\n\n\n\n<div id=\"alma\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2024\/06\/AlmaLinuxLogo.svg\" alt=\"Alma Linux logo\" class=\"wp-image-13346\" style=\"width:auto;height:100px\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Alma Linux 9.4<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open a terminal with sudo privileges and run this command to update all existing system packages:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em>sudo dnf update \u2013y<\/em><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Add the Docker repository:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em>sudo dnf config-manager \u2013add-repo=https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo<\/em><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Install the Docker Engine:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em>sudo dnf install docker-ce docker-ce-cli containerd.io<\/em><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Start and Enable Docker:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em>sudo systemctl start docker<\/em><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code><em>sudo systemctl enable docker<\/em><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">To verify the installation was successful, you can run the \u2018hello-world\u2019 image:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em>class=\u201dlanguage-sh\u201d&gt;sudo docker run hello-world<\/em><\/code><\/pre>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div id=\"ubuntu\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<figure class=\"wp-block-image size-medium is-resized\"><img decoding=\"async\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2024\/06\/UbuntuLogo.svg\" alt=\"Ubuntu logo\" class=\"wp-image-13347\" style=\"width:auto;height:100px\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Ubuntu 22.04<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open a terminal with root privileges and run these commands to update existing packages and set up the Docker repository:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em>sudo apt-get update<\/em><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code><em>sudo apt-get install ca-certificates curl<\/em><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code><em>sudo install -m 0755 -d \/etc\/apt\/keyrings<\/em><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code><em>sudo curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg -o \/etc\/apt\/keyrings\/docker.asc<\/em><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code><em>sudo chmod a+r \/etc\/apt\/keyrings\/docker.asc<\/em><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Install the latest version of Docker:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em>sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin<\/em><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">To verify the installation was successful, you can run the \u2018hello-world\u2019 image:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em>sudo docker run hello-world<\/em><\/code><\/pre>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1356\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2025\/10\/Docker-vs-Virtual-Machine-2048x1356.webp\" alt=\"Graphic depicting Docker going head-to-head with a Virtual Machine\" class=\"wp-image-17292\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2025\/10\/Docker-vs-Virtual-Machine-2048x1356.webp 2048w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2025\/10\/Docker-vs-Virtual-Machine-300x199.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2025\/10\/Docker-vs-Virtual-Machine-768x509.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2025\/10\/Docker-vs-Virtual-Machine-1536x1017.webp 1536w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2025\/10\/Docker-vs-Virtual-Machine-400x265.webp 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2025\/10\/Docker-vs-Virtual-Machine-800x530.webp 800w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2025\/10\/Docker-vs-Virtual-Machine-832x551.webp 832w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2025\/10\/Docker-vs-Virtual-Machine-1664x1102.webp 1664w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2025\/10\/Docker-vs-Virtual-Machine-1248x827.webp 1248w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2025\/10\/Docker-vs-Virtual-Machine-2496x1653.webp 2496w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2025\/10\/Docker-vs-Virtual-Machine-150x99.webp 150w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2025\/10\/Docker-vs-Virtual-Machine-scaled.webp 2560w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\" \/><\/figure>\n\n\n\n<div id=\"vms\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Containers Vs. Virtual Machines<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I can almost hear you saying: \u201cDocker containers sound an awful lot like virtual machines. Why would I bother using Docker when I could just use VMs?\u201d. There are a number of key differences:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Virtual machines<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>VMs emulate physical hardware, allowing you to run multiple operating systems on a single physical machine.<\/li>\n\n\n\n<li>Each VM includes a full operating system, along with the application, binaries, and libraries, leading to larger overhead.<\/li>\n\n\n\n<li>VMs require a hypervisor to manage them, which introduces some performance overhead.<\/li>\n\n\n\n<li>They offer strong isolation between applications since each VM has its own kernel and memory space.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Docker containers<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Containers virtualise the operating system instead of emulating hardware, allowing multiple applications to run on the same OS kernel.<\/li>\n\n\n\n<li>Hardware of the host machine can be passed through to containers to enable features like GPU acceleration \u2013 but the hardware must physically exist to do so.<\/li>\n\n\n\n<li>Containers package an application and all its dependencies into a single image, which is lightweight and portable.<\/li>\n\n\n\n<li>Containers share the host OS kernel, which leads to lower overhead and faster startup times compared to VMs.<\/li>\n\n\n\n<li>They are highly efficient, allowing for greater density of applications on a single host.<\/li>\n\n\n\n<li>Containers provide less isolation compared to VMs since they share the same kernel.<\/li>\n\n\n\n<li>Docker provides version control for its containers that allow users to track versions, roll back versions and manage differences between versions.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div id=\"services\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6af283937f127&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6af283937f127\" class=\"wp-block-image size-full is-style-default wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1357\" height=\"763\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/the-many-uses-of-vps.png.webp\" alt=\"Screenshot from the 20i VPS web page to illustrate that it is possible to run multiple services with a VPS using Docker\" class=\"wp-image-13363\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/the-many-uses-of-vps.png.webp 1357w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/the-many-uses-of-vps-300x169.png.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/the-many-uses-of-vps-768x432.png.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/the-many-uses-of-vps-400x225.png.webp 400w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/the-many-uses-of-vps-800x450.png.webp 800w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/the-many-uses-of-vps-832x468.png.webp 832w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/the-many-uses-of-vps-1248x702.png.webp 1248w, https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2024\/06\/the-many-uses-of-vps-150x84.png.webp 150w\" sizes=\"auto, (max-width: 1357px) 100vw, 1357px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Getting the most out of your VPS with Docker<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Having your own server securely nestled in a world class datacentre with unlimited bandwidth means that there are many useful services that you can run for personal and business purposes \u2013 often at no extra cost.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019d like to host your own secure <a href=\"https:\/\/www.20i.com\/blog\/passbolt-review\" target=\"_blank\" rel=\"noreferrer noopener\">password manager<\/a>, note taking application, smart home hub, adblocker and much more \u2013 you can do so very easily with Docker!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hosting these services on your own VPS is great for privacy enthusiasts as only you will have access to your data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Repositories such as <a href=\"https:\/\/hub.docker.com\/search?q=&amp;image_filter=official%2Cstore\" target=\"_blank\" rel=\"noreferrer noopener\">dockerhub<\/a> and <a href=\"https:\/\/fleet.linuxserver.io\" target=\"_blank\" rel=\"noreferrer noopener\">linuxserver.io<\/a> host vast arrays of first party and community-maintained Docker images that are free to download, install and use &#8211; and are an excellent place to see what is possible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So &#8211; will you be using Docker? What additional services will you run on your VPS? Are you interested in a follow-up article covering Docker Swarm? Let us know in the comments!<\/p>\n<\/div>\n\n\n<div class='code-block code-block-10' style='margin: 8px 0; clear: both;'>\n<hr>\n<br \/>\n<p><strong>Deploy all your apps with great value virtual server hosting, no compromises.<\/strong> Our high-performance VPS include:<\/p>\n<ul>\n<li>Lightning-fast speed with 100% SSD storage<\/li>\n<li>Genuine unlimited bandwidth \u2013 no throttling, ever<\/li>\n<li>Deploy standard distro, 1-click app or custom image<\/li>\n<li>Manage your servers through one single, intuitive control panel<\/li>\n<li>100% green hosting powered by renewable energy<\/li>\n<\/ul>\n<p>Find out how our <a href=\"https:\/\/www.20i.com\/vps\">VPS Hosting<\/a> is the perfect choice, from personal projects to complex apps. Visitors outside the UK can view our <a href=\"https:\/\/www.20i.com\/us\/vps\">VPS Hosting<\/a> here.<\/p>\n<br \/><br \/><\/div>\n\n","protected":false},"excerpt":{"rendered":"Docker is a tool that enables developers to build, run, verify and share projects within cohesive packages called&hellip;","protected":false},"author":34,"featured_media":13388,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","footnotes":""},"categories":[51,47],"tags":[81,94,70],"class_list":["post-13338","post","type-post","status-publish","format-standard","has-post-thumbnail","category-technology","category-web-hosting","tag-internet","tag-open-source","tag-web-hosting","cs-entry"],"_links":{"self":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts\/13338","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/users\/34"}],"replies":[{"embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/comments?post=13338"}],"version-history":[{"count":25,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts\/13338\/revisions"}],"predecessor-version":[{"id":17293,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts\/13338\/revisions\/17293"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/media\/13388"}],"wp:attachment":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/media?parent=13338"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/categories?post=13338"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/tags?post=13338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}