Назад | Перейти на главную страницу

Минимальный контейнер-докер для изображений ubuntu, например

Играю с LXC. Моя цель - запустить один процесс в контейнере, и теперь я сосредотачиваюсь на процессах, запущенных в моем контейнере.

Когда я создаю базовый шаблон LXC в ubuntu 12.04, у меня работает около десяти процессов (включая cron, ttys, init ...). Когда я делаю то же самое с docker или Heroku dynos (используя ps -ef), У меня остался только запущенный мной процесс. Это приводит к 2 вопросам:

Эти вопросы довольно сложные, я ищу здесь не подробный ответ, а просто общие идеи о том, как это работает.

Вы можете найти базовые инструкции по созданию базового изображения в докеры и взгляните на mkimage-скрипты в каталог contrib исходного кода. Все сводится к тому, что вы используете debootstrap инструмент для создания корневой файловой системы ubuntu / debian, заархивируйте ее и импортируйте в docker. Примером создания минимального точного образа ubuntu (12.04 LTS) с нуля будет:

    debootstrap --verbose --variant=minbase --include='iproute,iputils-ping' --arch=amd64 precise /tmp/precise/ `curl -s http://mirrors.ubuntu.com/mirrors.txt | head -1` 

Последний бит curl выберет зеркало ubuntu рядом с расположением вашего компьютера, вы также можете просто передать стандартный URL-адрес зеркала ubuntu - обратите внимание, что это выбранное зеркало теперь будет жестко закодировано в ваших новых изображениях etc/apt/sources.list, поэтому вы можете изменить его перед упаковкой, отредактировав его в соответствии с этот

Наблюдение за запущенными процессами в контейнерах докеров - это то, что не входит в задачу самих контейнеров - они просто отвечают за выполнение любой данной команды в изолированной среде. Часть управления демонами должна происходить на вашем хост-компьютере докеров, т.е. вы можете написать выскочку для каждого из ваших желаемых контейнеров.