Deploying to a Cloud VM
Deploy your Dockerized application to a virtual machine instance on a chosen cloud provider.
Deploying to a Cloud VM is a free AI Powered SaaS: Stripe + Auth + Billing + Deploy lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the AI Powered SaaS: Stripe + Auth + Billing + Deploy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Deploying to the Cloud
You've containerized your app with Docker. Now, it's time to put it online! This lesson covers deploying your Dockerized application to a cloud Virtual Machine (VM).
A VM acts like a remote computer where your app can run 24/7, accessible to users worldwide.
What's a Virtual Machine?
A Virtual Machine (VM) is a software-based computer that runs on a physical server in a cloud data center. It has its own CPU, memory, storage, and network interface, just like a physical machine.
- Isolation: Each VM is isolated from others.
- Flexibility: You choose the operating system (OS) and resources.
- Persistence: Your app keeps running even if you disconnect.
Choosing Cloud Provider & OS
Major cloud providers offer VMs:
- AWS EC2: Amazon Elastic Compute Cloud
- GCP Compute Engine: Google Cloud Platform
- Azure Virtual Machines: Microsoft Azure
For your Dockerized app, a Linux OS (like Ubuntu or CentOS) is typically the best and most cost-effective choice.
Launching Your Cloud VM
Launching a VM involves a few key steps:
- Instance Type: Select CPU/RAM based on app needs.
- Region: Choose a geographical location close to your users.
- Key Pair: Create a secure SSH key for access.
- Security Group/Firewall: Define network rules (e.g., allow SSH, HTTP/S).
These are configured through your cloud provider's console or API.
Connecting via SSH
Once your VM is launched, you'll connect to it using SSH (Secure Shell). This encrypted protocol allows you to execute commands remotely and securely.
You'll use the private key from your key pair to authenticate.
ssh -i /path/to/your-key.pem ubuntu@your-vm-ipInstalling Docker Engine
Your cloud VM starts fresh. The first step is to install Docker Engine, which allows your VM to run Docker containers.
For Ubuntu, you'd update packages, then install Docker. This makes your VM a Docker host!
sudo apt update
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable dockerPulling Your App's Image
With Docker installed, you need your application's Docker image on the VM. If you pushed your image to a registry like Docker Hub or a private cloud registry, you can simply pull it.
Replace your-username/your-app:latest with your actual image name.
docker pull your-username/your-app:latestLaunching Your Container
Now, run your container! The -p flag maps a port on your VM (e.g., 80) to a port inside your container (e.g., 3000, where your app listens).
The -d flag runs it in 'detached' mode, so it runs in the background.
docker run -d -p 80:3000 your-username/your-app:latestOpening Ports (Firewall)
Even if your container is running, users can't reach it unless you open the necessary ports on your VM's firewall (often called 'security groups' in cloud providers).
You'll need to allow inbound traffic on port 80 (for HTTP) and potentially 443 (for HTTPS) from anywhere (0.0.0.0/0).
Checking Your Live App
After running your container and configuring the firewall, you can verify your deployment.
- SSH: Use
docker psto see running containers. - Browser: Navigate to your VM's public IP address or domain name in a web browser.
If you see your app, congratulations!
docker psDeployment Check
You've deployed your Dockerized app to a cloud VM. What's the primary tool used to securely connect and manage your remote VM?
Recap: VM Deployment
In this lesson, you learned how to deploy your Dockerized application to a cloud Virtual Machine. We covered selecting a provider, launching an instance, connecting via SSH, installing Docker, pulling and running your image, and configuring network access.
This is a foundational step for making your SaaS application publicly available!
Frequently asked questions
Is the “Deploying to a Cloud VM” lesson free?
Yes — the full text of “Deploying to a Cloud VM” is free to read here on the web, and the AI Powered SaaS: Stripe + Auth + Billing + Deploy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the AI Powered SaaS: Stripe + Auth + Billing + Deploy course, upgrade to CoddyKit PRO.
What will I learn in “Deploying to a Cloud VM”?
Deploy your Dockerized application to a virtual machine instance on a chosen cloud provider. You practise AI Powered SaaS: Stripe + Auth + Billing + Deploy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start AI Powered SaaS: Stripe + Auth + Billing + Deploy?
No prior experience is required. AI Powered SaaS: Stripe + Auth + Billing + Deploy on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Deploying to a Cloud VM” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this AI Powered SaaS: Stripe + Auth + Billing + Deploy lesson?
Yes. Every AI Powered SaaS: Stripe + Auth + Billing + Deploy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.