Docker — open-source проект, который предоставляет открытую платформу для разработчиков и администраторов по по созданию и запуску приложений где угодно, в качестве легковесных контейнеров.
Разработка Docker началась Соломоном Хайксом (Solomon Hykes) как внутренний проект dotCloud, сейчас Docker разрабатывается сообществом и Docker Inc.
Подробнее узнать о Docker можно в официальной документации
В рамках этой статьи будет произведена установка и использование Docker в Ubuntu 15.04
Docker требуется 64-битная архитектура и ядро Linux версии 3.10 или выше.
Я буду использовать Ubuntu 15.04 с ядром версии 3.19
Базовые термины:
Docker образ — простой шаблон для контейнера Docker. Образ обычно содержит операционную систему и предустановленные приложения. Образ используется для запуска контейнера, вы можете найти множество образов с различными ОС и приложениями на Docker Hub
Docker контейнер — образ, который может может быть записан и прочтен. Docker использует union-file-system в качестве основной. Все изменения, которые будут сделаны в контейнере будут сохранены новым слоем, относительно базового образа.
Каждый контейнер запускается изолировано от основной системы, что обеспечивает безопасную программную платформу.
Docker реестр — репозиторий образов Docker. Он содержит публичные и частные репозитории. Публичный реестр называется Docker Hub.
Установка Docker в Ubuntu 15.04
Для начала проверим версию ядра и архитектуру ОС.
Для этого выполним следующую команду:
uname -a
Как видим, у нас используется Ubuntu 15.04 — 64 битная и ядро версии 3.19
Теперь установим Docker:
apt-get install -y docker.io
После установки, добавим Docker в автозагрузку и запустим:
systemctl enable docker
systemctl start docker
Теперь проверим версию Docker:
docker version
Docker установлен в системе, теперь можно с ним работать. Для начала нужно загрузить какой-либо образ.
Основы работы с Docker
В этой части вы узнаете основные команды Docker, а именно загрузка образа, создание контейнера и доступ к нему.
Для создания контейнера, вы должны выбрать базовый образ с ОС (Ubuntu/CentOS/другой). Вы можете выполнить поиск по образам с помощью команды docker search:
docker search ubuntu
С помощью этой команды мы нашли все Ubuntu образы. Попробуйте найти образы CentOS с помощью docker search centos
Теперь нужно загрузить образ на наш сервер:
docker pull ubuntu
docker pull imagename — команда, загружающая образ imagename с реестра Docker на ваше сервер.
Вы можете увидеть список всех загруженных образов с помощью команды:
docker images
Образ Ubuntu был загружен, теперь создадим контейнер из этого образа.
Для создания контейнера вы можете использовать docker create или docker run:
docker create ubuntu:14.04
docker create — команда, создающая контейнер, но не запускающая его.
Запустим контейнер:
docker run -i -t ubuntu:14.04 /bin/bash
Эта команда создаст и запустит контейнер на базе образа Ubuntu 14.04 и запустит команду /bin/bash внутри контейнера, вы автоматически окажетесь внутри контейнера после запуска этой команды.
Контейнер автоматически выключится, когда вы выйдите из командной строки. Если вы хотите, чтобы он работал постоянно, добавьте опцию -d в команду:
docker run -i -t -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
/bin/sh -c "while true; do echo hello world; sleep 1; done" — команда, бесконечно выводящая hello world.
Увидеть запущенные контейнеры можно с помощью следующей команды:
docker ps
или если вы хотите видет результат выполнения команд, используйте
docker logs NAMES/ContainerID
где NAMES/ContainerID — имя или ID контейнера
Как теперь подключиться к работающему контейнеру?
Следующая команда позволяет получить доступ к командной консоли:
docker exec -i -t NAMES/ContainerID
Оставить контейнер можно командой:
docker stop NAME/ContainerID
Это остановит контейнер, поэтому вы сможете позже запустить его снова с помощью:
docker start NAME/ContainerID
Если вы хотите удалить контейнер, сначала остановите его,а потом выполните:
docker rm NAME/ContainerID
На этом всё 🙂
Приветствую! Подскажите, образ скачан, контейнер создан и запущен (при перезагрузке контейнер автозапускается) — можно ли удалить образ? или после удаления образа контейнер не запустится?
Если не ошибаюсь, то этот образ используется в качестве базового, поэтому удалять его нельзя