Containers is a lightweight virtualization technology and has gained significant popularity lately. This post covers LXC(Linux Containers) support in CloudPlatform, deploying Docker containers on top of CoreOS Vms provisioned by CloudPlatform
CloudPlatform supports Linux Containers (LXC) as first class entity similar to the other hypervisors such as Xen, KVM, VMWare. A tar file of container filesystem is used as a template. LXC containers can be deployed using such templates. LXC containers run from a directory that serves as the root filesystem. Similar to KVM, LXC containers will be created using libvirt with lxc driver
CoreOS is a minimal Linux distribution with Docker support. CoreOS also has cloud-init support. CoreOS Vms are supported in CloudPlatform with templates hosted at http://dl.openvm.eu/cloudstack/coreos/x86_64 .
Further documentation on deploying CoreOS Vms is available here https://coreos.com/os/docs/latest/booting-on-cloudstack.html.
These templates are pre-seeded with scripts required to fetch userdata, set ssh keys. A pool of CoreOS Vms can be deployed on CloudPlatform. Tools like Kubernetes, Shipyard can be used to orchestrate container on these CoreOS Vms. Docker containers can also be directly created using cloud-init which can provided to CoreOS vm using userdata.
Below cloud-config will create httpd container and also setup port-forwarding on port 8000
– name: docker.service
– name: web.service
Description=Starts web server container
ExecStartPre=/usr/bin/docker pull httpd:2.4
ExecStart=/usr/bin/docker run -d -p 8000:80 httpd:2.4
deployVirtualMachine using the parameter userdata= to include above user-data formated in base64
With support for CoreOS and future support for OS like Atomic and RanchesOS, CloudPlatform along with rich networking capabilities can be a good platform for container deployment.