Ticket: https://issues.apache.org/jira/browse/MESOS-816
To get started with Docker/Marathon/Mesos, you need to install a new Mesos, a new Marathon, and Deimos, the bridge to Docker. You’ll also need Docker and the JVM. These instructions are for Ubuntu 13.10.
mkdir -p src
git clone https://github.com/mesosphere/mesos.git src/
git clone https://github.com/mesosphere/marathon.git src/
git clone https://github.com/mesosphere/deimos.git src/
- Install Mesos prerequisites
sudo apt-get update
sudo apt-get install -y zookeeperd default-jre python-setuptools python-protobuf curl pip
- Install a custom build of Mesos, build from this branch: https://github.com/mesosphere/mesos/tree/0.19.0-xcon3
curl -fL http://downloads.mesosphere.io/master/ubuntu/13.10/mesos_0.19.0-xcon3_amd64.deb -o /tmp/mesos.deb
sudo dpkg -i /tmp/mesos.deb
- Install the updated Mesos Python egg, for use in authoring frameworks
curl -fL http://downloads.mesosphere.io/master/ubuntu/13.10/mesos_0.19.0-xcon3_amd64.egg -o /tmp/mesos.egg
sudo easy_install /tmp/mesos.egg
- Install Deimos, built from https://github.com/mesosphere/deimos/releases/tag/0.2.3
sudo pip install deimos
- Install the Marathon Deb package, built from this branch: https://github.com/mesosphere/marathon/tree/wip-container-info
curl -fL http://downloads.mesosphere.io/marathon/marathon_0.5.0-xcon2_noarch.deb -o /tmp/marathon.deb
sudo dpkg -i /tmp/marathon.deb
To configure Mesos to use Deimos, you need to set the contents of two files:
sudo mkdir -p /etc/mesos-slave
echo /usr/local/bin/deimos | sudo dd of=/etc/mesos-slave/containerizer_path
echo external | sudo dd of=/etc/mesos-slave/isolation
Installing Docker is documented on the Docker site. Here’s one way:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install lxc-docker -y
It might be helpful to pre-cache the `libmesos` Docker image, used for custom executors:
sudo docker pull libmesos/ubuntu:13.10
At this point, you should take measures to ensure all services have started (or restarted). A reboot would be easiest.
To test that it seems to be working, try the Deimos integration tests:
If “$eth0_ip” does not work, try “$(hostname)”
./deimos/integration-test/test-suite "$eth0_ip":5050