In the Docker tsnuami where we are, most cloud company has their own public container offer:
- Google with Container Engine
- Amazon EC2 Container Service (ECS)
- Joyent with Triton
- And more and more
Those services are stiil often in Beta or Alpha and for begin a turn around of this Docker compatible offers, I started by SailAbove, RunAbove's Docker platform.
Overview
Basicaly SailAbove allows to instantly run a container and expose its ports on a public DNS. RunAbove has its Docker Image registry and its own DNS server for provide domain name to users. Client side, there's not yet a web interface, only Python command named sail
which imitates docker
and docker-compose
plus actions in their API.
On paper SailAbove it's:
- A public Docker service
- A private Docker images repository
- Integrated load balancer named Predictor
- Docker-compose integration
Let's play
As seen in previous article Dockerizing and Docker-composing my blog, my image will be a uWSGI service and I can compose a full stack with compose. No need to create a test image, my blog is made for.
Firstly go to labs.runabove.com and sign up to the SailAbove's test program. After, branch your docker client to SailAbove's registry:
# docker login sailabove.io
Username: zulupro
Password:
Email:
WARNING: login credentials saved in /root/.dockercfg.
Login Succeeded
Next step, I push my image to RunAbove, do not forget to build your image with a tag (repository name with -t
):
# docker build -t myblog .
# docker tag myblog sailabove.io/zulupro/myblog
# docker push sailabove.io/zulupro/myblog
Add a service and consult it.
# sail services add zulupro/myblog myblog
# nc -zv myblog.zulupro.app.sailabove.io 3031
Warning: inverse host lookup failed for 92.222.69.162: Unknown host
myblog.zulupro.app.sailabove.io [92.222.69.162] 3031 (?) open
In French: Frais !
What's new beside Docker ? Like several Docker platform, SailAboves use the concept of service for inquire informations about scaling, HA, network, etc:
# sail services inspect myblog
attached_domains: []
container_command:
container_entrypoint:
container_environment: []
container_model: x1
container_network:
public: true
zulupro/private: true
container_number: 1
container_ports:
container_user:
container_workdir:
containers:
myblog-1:
network:
public:
ip: 92.222.69.162
zulupro/private:
ip: 192.168.0.247
state: running
creation_date: 2015-07-08T20:13:00.856728
deployment_date: 2015-07-08T20:16:49.668545
description:
hostname: myblog.zulupro.app.sailabove.io
image: aa6b4154399e153f3d4e07b371176ec5fa34513123f0f71f6a6490f78de2b059
linked_from_service: {}
linked_to_service: {}
name: myblog
pool: public
repository: zulupro/myblog
repository_tag: latest
restart_policy: no
state: running
Compose aka fig
Docker-compose and RunAbove it's:
# sail compose up zulupro
[fig] Parsing fig file
Failed to up compose : Image build support is not supported for now
In other words NotImplementedError
or API doesn't support yet docker-compose. It will be maybe an another article but for now composing can be made manualy with sail services
command and its options..
Comments