How to Upload Custom Images

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.

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 datasource before the ConfigDrive datasource, 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 datasource before the ConfigDrive datasource, 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 datasources 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 will run using the proper datasource 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 will 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 Droplet console.

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

Warning
You must add an SSH key when creating Droplets from a custom image. These Droplets have password authentication disabled by default and it’s not possible to use the control panel to generate or reset the root password.

You can find cloud-friendly official Unix-like OS images on OpenStack.

Upload with the Control Panel

To upload an image via the control panel, click Images in the main navigation, then click the Custom Images tab.

Custom Images tab in the control panel

Here, you can upload a custom image in two ways:

  • You can upload an image file directly by clicking the Upload Image button, which opens a file selector, or by dragging and dropping the image file into the window.

  • You can enter the URL to an image file by clicking the Import via URL button. In the Upload an Image window that opens, enter the URL of the image you want to use in the text field, then click Next. The control panel supports uploads from HTTP, HTTPS, and FTP URLs.

Note
Some browsers have file size limitations. If you're unable to upload a large file via your browser, you can host the file somewhere and upload it by URL. For example, you can upload your image to Spaces and make the file public or use a file sharing tool like Dropbox. Make sure the URL ends in the file extension (like example.com/file.raw instead of example.com/file.raw?dl=0).

Using either upload method, the next window that opens prompts you to enter details about your image.

Upload an image window
  • Edit Image Name: This field is pre-filled with the name of the file you uploaded, but you can customize it if you like.

  • Distribution: You can choose from Arch Linux, RancherOS, Fedora, Ubuntu, CentOS, Debian, or Unknown.

  • Choose a datacenter region: Your image is located in a single datacenter of your choice at first, and you can transfer custom images to different datacenters after uploading.

  • Tags (optional): Custom images support tagging. You can add tags to your custom image here or at any time after uploading.

  • Notes (optional): This is a plain text field you can use to enter any additional notes about your custom image for your use.

After you've entered these details, click Upload Image. A progress bar appears on the control panel next to the Upload Image button. If you click on Details above this progress bar, a window appears listing all of your current uploads.

Custom image upload progress window

You can click the X next to any in-progress upload to cancel it, or click Cancel Uploads to cancel all current uploads.

Once you have at least one custom image added to your account, you can create a Droplet from a custom image.