Web hosting, VPS hosting and dedicated servers built for websites, apps and online businesses.
CybroHost Client Area
CybroHost
Browse by Topic All Blogs Business & Marketing Hosting & Servers Security & Performance Tutorials Website & WordPress Tips
CybroHost Blog

How to Run Docker Containers on a Linux VPS: Complete Guide

Learn how to install Docker Engine, run your first container, manage logs, and deploy services with Docker Compose on a Linux VPS. This practical guide covers Ubuntu installation commands, persistent data, firewall safety, and common beginner questions.

By October 19, 2026 3 min read Tutorials
Docker containers on a Linux VPS with server racks and laptop showing container management.

Running Docker containers on a Linux VPS lets you deploy websites, APIs, and supporting services without installing every dependency directly on the server. Containers package an application with its runtime, making updates and deployment more predictable. This beginner-friendly guide uses Ubuntu 24.04 LTS as the example.

Why Use Docker Containers on a Linux VPS?

Docker isolates applications into lightweight containers that share the host’s Linux kernel. You can run separate services, reproduce deployments, and replace containers without rebuilding your VPS. Unlike a full virtual machine, a container does not require its own operating-system kernel.

Choose a VPS with root access and enough RAM and CPU for all workloads. CybroHost Linux VPS Hosting provides KVM virtualization, NVMe storage, and root-level control suitable for self-managed applications.

Step 1: Prepare Your Linux VPS

Connect through SSH using a sudo-enabled account, update Ubuntu, and ensure that no conflicting Docker packages are already installed. Back up important data before changing an existing server.

sudo apt update && sudo apt upgrade -y

Step 2: Install Docker Engine and Compose

For Ubuntu, add Docker’s signed APT repository, then install the Engine and Compose plugin. These are the official repository steps; other distributions require their own instructions. Review the official Docker installation guide for package conflicts and supported releases.

sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin

sudo docker run --rm hello-world

The final command confirms Docker can download and run a test image.

Step 3: Launch Your First Docker Container

Run an Nginx web server in the background:

sudo docker run -d --name demo-web \
  -p 8080:80 --restart unless-stopped nginx:stable

Open http://YOUR_SERVER_IP:8080 to view the welcome page. Port publishing makes the service reachable on the VPS network interfaces, so expose only intended services and apply provider-level firewall rules.

Step 4: Manage Containers and Logs

Use these commands to inspect, troubleshoot, and stop the demonstration container:

sudo docker ps
sudo docker logs demo-web
sudo docker stats --no-stream
sudo docker stop demo-web
sudo docker rm demo-web

Images are templates; containers are running or stopped instances. Removing a container can discard data stored only in its writable layer.

Step 5: Use Docker Compose and Secure Your VPS

Docker Compose manages multiple related services through a compose.yaml file. Run sudo docker compose up -d inside the project directory, and sudo docker compose down to stop its services. Use named volumes for persistent databases and back up those volumes regularly.

Keep images updated, restrict published ports, avoid privileged containers, and never expose the Docker daemon publicly. Docker-published ports can bypass some UFW rules, so check firewall behavior carefully. The docker group grants root-equivalent privileges; use sudo or evaluate rootless Docker instead.

FAQs

Can Docker run on a 1 GB RAM VPS?

Yes, for very lightweight containers, but several services or databases usually need more memory.

Do I need a domain to use Docker?

No. You can test using the VPS IP and a published port; a domain and reverse proxy help with production HTTPS.

Will containers restart after a VPS reboot?

They can. A restart policy such as unless-stopped tells Docker to restart eligible containers when Docker starts again.

Final Recommendation

Start with one container, verify logs and connectivity, and move to Compose when you need multiple services. Security, persistent storage, and monitoring matter as much as getting a container running.

Ethan Collins

CybroHost editorial team sharing hosting, VPS, security, and performance knowledge.