Image
An image is a template file that contains a pre-configured operating system, software, and settings used to create instances in cloud hosting. It acts as a blueprint that determines what your virtual machine will run when it starts.
What is an Image in cloud hosting?
An image is a template file that contains a pre-configured operating system, software, and settings used to create instances (virtual machines) in cloud hosting. It acts as a blueprint that determines what your virtual machine will run when it starts.
When you launch an instance, you select an image that defines the starting state of that instance. The cloud platform copies the image to the instance's root disk, and the instance boots from that disk. Every instance requires an image at creation time.
Why Images Exist
Before cloud images, system administrators had to manually install operating systems and configure software on every new server. This process took hours or days and introduced inconsistencies between servers.
Cloud images solve this by providing repeatable, consistent starting points. You launch dozens of identical instances in minutes instead of spending days on manual configuration. Images also ensure every instance in your application fleet starts with the same software versions, security patches, and configuration files.
What Do Images Actually Do?
Provides the operating system files and kernel that the instance boots from
Includes pre-installed software packages and libraries configured in the image
Sets initial system configurations such as default users, network settings, and file permissions
Determines the minimum disk size required for the instance root disk
Defines the metadata that cloud platforms use to optimize instance performance (such as cloud-init configurations)
Stores the entire filesystem structure that will be copied to new instances at launch time
When would I use an image?
You use images in these situations:
Launching a new instance with a standard operating system like Ubuntu, CentOS, or Windows Server.
Deploying multiple identical instances for a web application that all need the same software stack.
Creating a custom image with your application pre-installed to speed up deployment and ensure consistency.
Restoring a server to a known good state after testing changes by relaunching from the original image.
Migrating workloads between cloud environments by exporting an image from one platform and importing it to another.
Building automated deployment pipelines that launch instances from standardized images.
When would I NOT use an image?
Images are not appropriate in these cases:
You need to store application data or user files. Images provide the operating system and software, but data should be stored on persistent volumes that survive instance deletion.
You want to update running instances. Changes to an image do not affect instances already launched from that image. You must relaunch instances or update them directly.
You need to share files between instances. Images create independent copies for each instance. Use shared storage volumes or object storage instead.
You want to modify a running instance's operating system. You should update the instance directly, then create a new snapshot image if you want to preserve those changes.
You need to run multiple different operating systems on one instance. Each instance can only boot from one image at a time.
Real-world example
Company A runs an e-commerce platform with 20 web servers that all need identical configurations. They create a custom image with Ubuntu 22.04, Nginx, PHP, their application code, and security hardening applied. When they need to scale up during a sale, they launch 10 new instances from this custom image in under five minutes. All 10 instances boot with the exact same software stack, eliminating configuration drift and reducing deployment errors. When they discover a security vulnerability in PHP, they update one instance, test the fix, create a new snapshot image, and replace all 20 instances with new ones launched from the updated image.
Frequently Asked Questions
Do I need more than one image?
You typically need multiple images if you run different types of workloads. For example, you might have one image for web servers with Nginx installed, another for database servers with PostgreSQL, and a third for batch processing workers with Python libraries. However, if all your instances perform the same function, you can use a single image for all of them.
Does creating an image affect existing instances?
No. Creating an image from a running instance takes a snapshot of that instance's disk, but the instance continues running normally. The image is an independent copy. Similarly, launching new instances from an image does not affect the source instance that was used to create that image.
What happens if I delete an image that instances are using?
Deleting an image does not affect instances already running from that image. Those instances have their own copies of the disk contents and continue operating. However, you will not be able to launch new instances from that deleted image. If you need to create more instances with the same configuration, you will need to create a new image from an existing instance or use a different image.
Can I modify an image after I create it?
No. Images are immutable once created. You cannot change the files or configuration inside an existing image. If you need different software or settings, you must launch an instance, make your changes on that running instance, and then create a new snapshot image from that modified instance. This new image will reflect your changes.
How do I know which image to use for my application?
Start with the operating system your application requires. If you are deploying a Linux application, choose a current version of Ubuntu, CentOS, or Debian based on your team's familiarity and your application's dependencies. For Windows applications, select the appropriate Windows Server version. After you configure one instance with your application and verify it works, create a custom image from that instance so future deployments use your tested configuration instead of starting from scratch.
Summary
An image is a template file containing an operating system and software that serves as the blueprint for creating instances in cloud hosting.
Images provide consistent, repeatable starting points that eliminate manual OS installation and configuration inconsistencies.
You select an image every time you launch an instance, and that image determines what software the instance runs.
Images are immutable - to change an image you must modify an instance and create a new snapshot image.
Custom images accelerate deployment and ensure consistency across multiple instances running the same workload.
Related terms
Images work with several other cloud resources to create functional virtual machines:
**Instance**: An image serves as the template from which an instance is created, such as launching a web server instance from an Ubuntu 22.04 image.
**Flavor**: An image defines the software while a flavor defines the hardware, such as pairing a CentOS image with a flavor that provides 4 vCPUs and 8GB RAM.
**Snapshot**: A snapshot captures the current state of a running instance and saves it as a new image, such as creating a backup image of a configured database server.
**Volume**: An image can be copied to a volume to create a bootable disk that persists beyond the instance lifecycle, such as creating a boot volume from a Windows Server image.
Related Terms
Glance
Glance is the OpenStack image service that stores, catalogs, and retrieves disk images used to launch instances in a cloud environment.
