Bug Reference

JIRA-6664: https://issues.apache.org/jira/browse/CLOUDSTACK-6664 

Branch

4.5 hopefully.

Introduction

Purpose

This is functional specification of feature "Support Docker as a hypervisor" which has Jira ID CS-6664. Docker hypervisor can spawn containers from Dockerfile, Docker image or Docker tar file.

References

Document History

Glossary

  • Dockerfile: This textfile is read by Docker service to automate the steps you would otherwise perform manually to create an image.
  • Docker registry: repository server for Docker images.

Feature Specifications

  • running Docker containers as VMs in CloudStack
  • remove SSVM + CPVM and also Secondary Storage & Primary Storage. Data will be store locally on Docker host.
  • running Virtual Router as a Docker container

Use cases

A user want to use containers in CloudStack, LXC or Docker hypervisor can be used. For Docker, this can be done in several ways: 

  • run from a Docker image
  • build from a Docker file
  • run from a Docker tarfile

Architecture and Design description

cloud-plugin-hypervisor-docker

  • DockerResource acts like a Docker driver, which provides provisioning commands (startContainer, stopContainer, restartContainer,...) from Agent Manager. It makes corresponding http requests to the Docker service running on HOST.
  • DockerGuru fills container parameters for provisioning.
  • DockerServerDiscoverer  discovers and registers Docker HOST with the Agent Manager.

cloud-setup-agent starts Docker service in the background in the Docker host and sends register host request to the Agent Manager.

docker HTTP client implements http requests to the Docker service, using REST API v1.10

Web Services APIs

registerTemplate

  • hypervisor: Docker
  • format: choose from combo box
    • from a Repository image
    • from a Dockerfile
    • from a Tarfile
  • url:
    • image name if Repository is chosen
    • url if Dockerfile is chosen
    • url if Tarfile is chosen

UI flow

  • No labels

1 Comment

  1. "4.5 hopefully." Did it make it?