Deploying a Single Container

Get your container online ASAP by deploying a single container quickly into an environment.

Cycle provides a completely UI based form to deploy individual containers. It provides a quick and easy way to get a container online without much configuration. Once the container is created, you will be able to modify any part of it's configuration to a fine degree. To get started, follow these steps:

  1. Give your container a name, and provide initial information about the deployment.
  2. Select or import a new image.
  3. Configure network options, including hostname, the level of internet access, domain, and TLS/SSL certificate generation.
  4. Verify everything is correct, and finalize your project.

Step 1: Basic Information

Container Name

The name of a container is for your purposes only, and doesn't affect any other aspect of the container. However, on this form, Cycle will automaticall prefill the hostname of the container with a formatted version of the name for convenience. You are free to change the hostname without affecting the name.

Give your project a descriptive name

Initial Instances

The instance slider tells Cycle exactly how many copies of the container you want to run when it starts. Based on the deployment tags you set, Cycle will automatically balance the instances across your cloud.

Set total instance count and tags using this field

Deployment Tags

In short, deployment tags give you the power to match container instances to servers that meet the criteria. This is discussed in-depth in the Deployment Tags documentation.

If left blank, Cycle will deploy instances to any available servers until the 'Initial Instances' quota has been met.

You can add both POOL and REQUIRE tags using the selector. To add a REQUIRE tag, click the box on the right hand side labeled [REQUIRE]. It will appear in the field with [required] next to it's name. To add a POOL tag, click the name of the tag, or the box labeled [POOL]. The tag will be added to the field (but will not have [pool] next to it.)

Adding a POOL tag using the selector. Notice how the POOL box is checked.

Step 2: Select an Image

Possibly the most important part of deploying a container is selecting WHICH container to deploy. Using the image selector, you can choose from a previously imported image, or import a new one on the spot from various sources, including Docker Hub.

  1. Choose how you want to select your image, either an existing image, or import a new one. If you choose existing, skip to step 4.
    Choose either an existing image, or import a new one from within the form.
  2. Cycle does not store your credentials for your private registry or repository. You will need to provide them every time you import that image.
    Using the tabs on the left, select the source you wish to import from. At this time, you can import from either Docker Hub, or a private Docker Registry.

    Docker Hub

    Typing in the "Image Name" box will automatically search hub.docker.com as you type, returning images along with their description and rating. Select your image from the list (or enter a custom one), then set the tag in the tag field. By default Cycle will import the 'latest' tag. You may also provide custom authorization by selecting the "Use Auth" checkbox. Enter your username and password into the respective fields.

    Docker Registry

    If you choose to import from a Docker Registry, the process is the same, except in the URL field you will need to enter the custom url the registry is hosted on. For example, if your image name isimages.website.com/myimage:latest, you would enter images.example.com into the URL field. It's recommended to host your own Docker Registry on Cycle for extra security instead of using the public Docker Hub option.

    Git Repo

    [COMING SOON]

    File Upload

    [COMING SOON]
    Importing an image from Docker Hub.
  3. Wait for the image to import. When complete, a button will become clickable that says "Select Image".
  4. Select your image from the list. If you just imported it, it will be selected for you automatically.

Configure Volumes

Some container images may specify volumes (persistent data storage). Cycle will automatically detect these and ask you to configure them.

Volumes are created for each instance, so if you configure a 1GB volume for your container, but deploy 3 instances of that container to a box, they will use 3GB of storage.
  • Path - The path is automatically determined by the image, and cannot be changed.
  • Type - At this time, "Local" is the only available option, which means the volume will be created on the local server the instance is deployed to. In the near future, we will have more storage options available, such as SAN
  • Max Size - Containers will grow to the max size set. Since this is a limit and not an allocation, it is possible that the volume won't have enough data to grow to the max size.
  • - click the gear to expand to more options. You can set readonly status of the drive here and whether basic remote access is enabled (this can be configured in detail once deployed).
Configuring volumes

Step 3: Configure The Network

Hostname

The hostname is the string that all other containers within the same environment can refer to it by. It must be lowercase, and only contain letters, numbers, and hyphens.

Public Network

There are three types of network privilege a container can have:

  • Disabled - Public internet access is completely disabled for this container. It may only communicate with other containers within the same environment. This is ideal for sensitive things, such as databases.
  • Egress Only - The container may initiate connections over the internet, but all incoming connections will be blocked. This is ideal for things that require fetching data from the web, but do not need to respond to inbound requests, such as web scrapers.
  • Enabled - The container is able to both start and aaccept connections over the internet. This is a must for websites, APIs, and other services where clients may not be known ahead of time.

Domain

Using Cycle's Hosted Record type, it's possible to assign a domain (A/AAAA record) directly to the container and have the platform manage the IPs for you. Any unused hosted record will be available from the dropdown.

If you'd like to add a new domain, or a new zone entirely, select the "Add New Domain" button to the right, enter a Fully Qualified Domain Name into the field, and click "Add". If you are creating a new zone, it will need to be verified before the container is startedSee here for more information on how DNS works on Cycle.

TLS/SSL Certificates

By utilizing Let's Encrypt, Cycle can take the pain of remembering to renew your certificates off your shoulders. Certificates are renewed every 90 days.

In order to enable automatic TLS/SSL certificate management, you must first set a domain to the container. Then, check the "Enable Automated TLS/SSL" box. By default, Cycle will install the generated certificates to/var/run/cycle/tls. Depending on how your application is set up, you may wish to change this. Do so by entering the full path into the "Certificate Installation Path" field.

Step 4: Finalize

Verify everything is correct in the deployment summary box on the right, then click the "Create Container" button, located on the bottom right side of the form. All of these options will be fully configurable after creation as well, so if you make a mistake you can easily correct it before starting the container.

Need Help?

If you've got questions about the platform or need some help getting started, our team is more than happy to assist. Whether you're new to containers or just new to Cycle, reach out to us via livechat by clicking the blue circle in the bottom right corner. Join our Slack channel, and get help from the dev team or other members of the community.