Установка Docker на сервер Ubuntu 13.04

Published by Leave your thoughts

Docker – это открытая платформа, позволяющая автоматизировать развёртывание приложений путём создания портативных автономных контейнеров, независимых от аппаратного обеспечения, языка, фреймворка, упаковки файлов и хостинг-провайдера.

Данное руководство покажет, как собрать и установить Docker на свежий облачный сервер Ubuntu 13.04.

Примечание: Docker поддерживает только 64-битную архитектуру.

1: Подготовка сервера

Для начала нужно создать пользователя, домашний каталог которого будет использован для хранения файлов Go и Docker. Введите следующую команду, заменив USER именем пользователя:

sudo useradd -m -d /home/USER -s /bin/bash -U USER

Чтобы установить пароль, запустите:

passwd USER

Также рекомендуется открыть данному пользователю доступ к команде sudo. Для этого создайте группу admin и добавьте в неё нового пользователя.

groupadd admin && usermod -a -G admin USER

Войдите в систему как новый пользователь:

su USER

Домашний каталог текущего пользователя будет хранить файл Go и Docker. Откройте этот каталог:

cd ~/

Установите зависимости:

sudo apt-get update
sudo apt-get install linux-image-extra-`uname -r`

После этого на экране появится следующее сообщение:

A new version of /boot/grub/menu.lst is available, but the version installed currently has been locally modified.
What would you do about menu.lst?

Ниже будет предложен список действий; выберите «keep the local version currently installed».

2: Установка Go

Для работы Docker требуется Go 1.1. Как правило, в стандартных репозиториях системы хранятся устаревшие версии пакетов, поэтому лучше загрузить Go вручную.

wget http://go.googlecode.com/files/go1.1.1.linux-amd64.tar.gz
tar xf go1.1.1.linux-amd64.tar.gz
rm go1.1.1.linux-amd64.tar.gz

Теперь нужно внести некоторые переменные окружения, чтобы .profile определил местонахождение установки Go:

echo "export GOROOT=\$HOME/go" >> ~/.profile
echo "PATH=$PATH:\$GOROOT/bin" >> ~/.profile
source ~/.profile

Теперь на экране должна появиться только что установленная версия Go.

Создайте каталог и добавьте ещё несколько переменных среды для .profile:

mkdir ~/gocode
echo "export GOPATH=\$HOME/gocode" >> ~/.profile
echo "PATH=\$PATH:\$GOPATH/bin" >> ~/.profile
source ~/.profile

В документации Go говорится, что переменная $GOPATH – это разделенный двоеточиями список путей, в котором может находиться код Go, объекты, пакеты и исполнимые файлы.

То есть, $GOPATH – это место, в котором хранятся все исходники и зависимости Docker. Это позволяет упростить установку Docker до одной команды.

3: Установка Docker

Установите остальные зависимости Docker:

sudo apt-get install lxc curl xz-utils git mercurial

Создайте структуру каталогов для сборки:

mkdir -p $GOPATH/src/github.com/dotcloud

Клонируйте репозиторий Docker с github:

cd $GOPATH/src/github.com/dotcloud
git clone https://github.com/dotcloud/docker.git

Теперь можно использовать удобную функцию go get, чтобы загрузить и установить пакеты и зависимости, необходимые для сборки Docker:

cd $GOPATH/src/github.com/dotcloud/docker
go get -v github.com/dotcloud/docker/...

Эта команда установит Docker. Чтобы иметь возможность запускать исполнимые файлы Docker как root, не указывая полный путь, создайте символьную ссылку на каталог /usr/local/bin:

sudo ln -s $GOPATH/bin/docker /usr/local/bin/docker

Запустите Docker

sudo docker -d &

Выполнив эту команду, нажмите Enter, чтобы запустить Docker в фоновом режиме. Проверьте установку, загрузив базовый образ контейнера.

docker pull base

После загрузки попробуйте запустить новый контейнер:

docker run -t base /bin/echo "Hello, world."

Чтобы обновить Docker, достаточно остановить сервис, удалить бинарные файлы, загрузить репозиторий при помощи функции go install, а затем перезапустить Docker:

sudo kill $(cat /var/run/docker.pid)
rm $GOPATH/bin/docker
cd $GOPATH/src/github.com/dotcloud/docker && git pull origin master
go install -v github.com/dotcloud/docker/...
sudo docker -d &

Вот несколько полезных ссылок:

Tags: , ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>