Bring Your Custom Image to DigitalOcean
Creating and controlling the Linux distributions that your application runs on can be an important method of optimizing application performance and, in some cases, is an absolute requirement. Custom images are Linux distributions that have been modified to fit the specific needs of the developer, and with our new Custom Image feature, you can benefit from the scale of DigitalOcean while using your own custom environment.
This feature is a popular request from users, and we’re happy to make it available now. In this guide, we will discuss some basics of importing a custom image and address some frequently asked questions.
Custom Images at a Glance
Importing custom images is free, as you are only charged for the storage of your image at $0.05/GB per month. To save money, you can easily import your image, start a Droplet from your image, and delete the image so you don’t incur any storage costs.
Which images are supported?
Any Linux OS that supports ext3/4 file systems and has cloudinit 0.7.7, cloudbase-init, coreos-cloudinit, ignition, or bsd-cloudinit installed should work with the import tool. Currently, ISO files are planned to be supported towards the end of 2018. If you would like to upload an ISO file, we suggest first booting the ISO into your VirtualBox (or your favorite virtualization tool) to generate a supported file type, and then importing that file into our Custom Image tool.
Importing an image to DigitalOcean
Before we review the options for uploading a custom image, please make sure the image file format is one of the following: raw, qcow2, vhdx, vdi, or vmdk file. To save on space, you can also compress the file using both gzip and BZip2 compression formats. Once you have your image in the proper format, you can import an image through the Control Panel as follows:
After logging into cloud.digitalocean.com, you can click on Images on the left of the screen and then click on “Custom Images”
From there, you can either drag/drop your image file, select the file in your local environment, or upload via URL. Note that browsers will limit the upload file size, so if your image is over 3GB, you may not be able to upload your file directly from the Control Panel.
If your image is too large to be uploaded through a web browser, you can also upload to our Spaces Object storage service using the S3-compatible Spaces API, and then point the custom images features to the URL of your uploaded image. When uploading via URL, make sure that the URL ends in a file name, such as www.digitalocean.com/image.raw as opposed to a masked URL such as www.digitalocean.com/image.raw?example as we check the file name before uploading.
Once the image is uploaded into DigitalOcean, we process the image and prepare it to start as a Droplet. You can start a Droplet directly from the Custom Images area above, or through the Create dropdown on the top right of the screen. We’ve made it easy to keep track of your images with the option to tag images as well as adding notes to each image.
If you are interested in or use infrastructure automation tools, you can leverage the DigitalOcean API endpoint for Custom Images to start a Droplet from your custom image.
In the following months we will continue to expand on this feature to allow for greater flexibility with the API as well as support for ISO images. If there are any specific features that you would like to see relating to importing custom images, please add your thoughts in our User Voice forum.