docker.io and openSUSE

Tony Su edited this page Sep 20, 2013 · 8 revisions
Clone this wiki locally

The aim of this project is to:

  1. run docker.io on an openSUSE host.
  2. create an openSUSE guest to run inside of docker.io.
  3. figure out how to create docker.io guests using SUSE Studio.

Docker is a really cool project. Unfortunately it can only run on Ubuntu hosts right now. Moreover there are just two types of containers out there: one based on Ubuntu, the other based on Fedora.

People

Flavio Castelli originated this idea.

Status

Flavio Castelli is hacking on it.

Day 1: achievements

I've been able to build and run docker.io on an openSUSE 12.3 host machine. I'm also able to execute all the the examples reported on docker.io website. That means running a ubuntu-based containers :)

Tomorrow I'll clean up all the "ugly" hacks I had to do in order to get lxc work properly. The plan is to improve the lxc package and build a docker.io one on OBS.

Day 2: achievements

Packaged go-pty, a build-time dependency of docker and created docker package which provides docker binary and its init script.

For some strange reason container's networking is not working as expected. This is probably due to the change of the default bridge interface from lxcbr0 to docker0. The init script takes care of creating this bridge interface, but the containers keep complaining because they cannot attach to the device.

Plans for tomorrow:

  • figure out what is wrong with the networking interface used by the containers.
  • small cleanup of docker.spec.
  • push docker package to OBS inside of home:flavio_castelli:docker.
  • extend docker to create its pid file to a file, required by the init script.

Day 3: achievements

Morning:

  • [DONE] figure out what is wrong with the networking interface used by the containers.
  • [DONE] small cleanup of docker.spec.
  • [DONE] push docker package to OBS inside of home:flavio_castelli:docker.
  • [DONE] extend docker to create its pid file to a file, required by the init script (pull request).

Afternoon:

  • [DONE] publish a demo appliance created with SUSE Studio appliance
  • [WIP] figure out how to crate a openSUSE-based container.

Day 4: achievements

  • create a openSUSE 12.3 container compatible with docker using kiwi.
  • upload the openSUSE 12.3 container to docker's official repository.
  • look into how to add docker output to SUSE Studio

The openSUSE 12.3 container can be used doing: docker pull flavio/openSUSE_12.3

Day 5: achievements

  • look into how to add docker output to SUSE Studio.
  • more experiments with kiwi and LXC containers.
  • published blog post.

Conclusion

The project has been successfully completed. All the goals have been reached.

You can find more details inside of this blog post.

Categories: cloud Tags: done

Related material

Comments

Hi @flavio! This is great and I know it will make several people very happy in the Docker community :) I created an issue on the Docker repo to track your progress and help you communicate with anyone else who might want to participate: https://github.com/dotcloud/docker/issues/359

Thanks again! Solomon


Hello Flavio! Your project piqued my interest and I will certainly attempt to replicate. Currently I'm working on a project (which I might submit to an upcoming Hackweek) where I am attempting to create universal LXC templates. I am interested in tracing your steps to your successful Ubuntu containers because currently (and maybe things have changed) it's not likely possible for many Containers to run a distro different than the HostOS for a variety or reasons I'm attempting to clean up.

Putztzu, aka tsu2