Custom Images Features

Custom images are Linux and Unix-like images you import to DigitalOcean. You can create Droplets based custom images, which lets you migrate and scale your workloads without spending time recreating your environment from scratch.


Once you upload a custom image to your DigitalOcean account, you can create Droplets based on that image. When you upload a custom image, you select a region for it to be available in. You can create Droplets based on a custom image in that region, and you can make your custom image available in additional regions at any time.

You can find cloud-friendly official Unix-like OS images on OpenStack or create your own with your preferred VM software.

Image Requirements

Images you upload to DigitalOcean must meet the following requirements:

  • Operating system. Images must have a Unix-like OS.

  • File format. Images must be in one of the following file formats:

  • Size. Images must be 100 GB or less when uncompressed, including the filesystem.

  • Filesystem. Images must support the ext3 or ext4 filesystems.

  • cloud-init. Images must have cloud-init 0.7.7 or higher, cloudbase-init, coreos-cloudinit, ignition, or bsd-cloudinit installed and configured correctly. If your image’s default cloud-init configuration lists the NoCloud data source before the ConfigDrive data source, Droplets created from your image will not function properly.

    Click here to display detailed cloud-init instructions.

    If your image’s default cloud-init configuration lists the NoCloud data source before the ConfigDrive data source, Droplets created from your image will not function properly. We have detailed instructions on reconfiguring cloud-init for Ubuntu 18.04.

    The process for fixing this in general is to edit the cloud-init config file either using a text editor or with dpkg-reconfigure to order the data sources correctly. The actual line in the file should look similar to this when you’re done:

    datasource_list: [ ConfigDrive, OpenNebula, DigitalOcean, Azure, AltCloud, OVF, MAAS, GCE, OpenStack, CloudSigma, SmartOS, None, NoCloud ]
    

    After you edit the file, you need to purge the previous cloud-init data so cloud-init runs using the proper data source when your Droplet boots. You can do this using cloud-init clean or by manually cleaning out /var/lib/cloud. You should also verify the networking configuration, the details of which vary by distribution.

  • SSH configuration. Images must have sshd installed and configured to run on boot. If your image does not have sshd set up, you will not have SSH access to Droplets created from that image unless you recover access using the Recovery Console.

You can also upload a custom image that meets the above criteria as a compressed gzip or bzip2 file.