Building Images

If you want to provide your app as part of an image that can be used to launch a compute instance in Oracle Cloud Infrastructure, then you must create or import your image in your Oracle Cloud Infrastructure Compute tenancy.

After you've generated your custom image, select the right set of compatible shapes for the image. A shape is a template that determines the number of CPUs, amount of memory, number of vnics, and the maximum supported bandwidth of a compute instance. Oracle Cloud Infrastructure offers both bare metal and virtual machine compute shapes with and without locally attached NVMe storage. Make sure you test launching your app using the image with the selected shapes. See Managing Custom Images in the OCI Compute documentation.

In addition to bare metal instances, Oracle Cloud Infrastructure supports the following virtualization modes:

  • Emulated
  • Paravirtualized
  • Native (hardware virtual machines, or HVM)

You can import custom images into Oracle Cloud Infrastructure to launch Virtual Machine (VM) instances instances in either emulated or paravirtualized mode. Native (HVM) images should be built on top of existing Oracle Cloud Infrastructure base images. For more information, see Bring Your Own Image (BYOI).

It's important to understand the following differences between and recommendations for using the virtualization modes:

  1. Instances running in emulated mode are fully emulated. While emulated mode VMs are more compatible with older operating systems (Linux with kernel version older than 3.4), they are slower than PV and native VMs. You shouldn't distribute images in emulated mode, if your images support PV mode. Emulated mode instances are exposed to an IDE disk and e1000 nic interfaces, and this driver has a limit of 1GBps bandwidth regardless of the specified compute shape. This bandwidth limitation could be an issue for some customers or applications. See Bring Your Own Image (BYOI)
  2. Instances running in paravirtualized mode leverage virtio for near-bare-metal performance. You should distribute images in paravirtualized mode whenever possible. Linux with newer kernel versions (3.4+) should be compatible with virtio/PV mode. PV mode provides image compatibility across different generations of Oracle Cloud Infrastructure hardware, which helps in lifecycle management and maintenance.
  3. VM instances running in native mode are hardware virtual machines (HVM). In this mode, instances are exposed to SR-IOV/VF for higher network performance. Oracle Cloud Infrastructure base images are native images. Build your images on top of existing Oracle Cloud Infrastructure base images, whenever possible, to support native mode. Oracle Cloud Infrastructure has a Packer Builder that enables you to build custom Oracle Cloud Infrastructure VM images.

Before you generate your custom image, ensure that the image complies with the relevant Guidelines for Images.

When you submit your listing to Marketplace for publishing, Oracle will review the listing. This review includes security and user experience checks to ensure that your image complies with Marketplace standards and that the listing description contains the appropriate instructions and details to provide an acceptable user experience when customers launch your app from Marketplace.