Docker

Материал из ALT Linux Wiki

Docker

Инструкция по работе с docker.

Установка

Установить docker можно следующей командой:

# apt-get install docker-engine

В старых репозиториях пакет называется docker-ce:

# apt-get install docker-ce

Для запуска docker от пользователя (не root) следует выполнить несколько шагов:

  1. Добавить пользователя в группу docker;
    # usermod ИМЯ_ПОЛЬЗОВАТЕЛЯ -aG docker
  2. Выполнить повторный вход в систему.

Затем необходимо запустить соответствующую службу:

# systemctl enable --now docker

Запуск и готовые образы

В зависимости от действий на этапе установки команды можно будет запускать от обычного пользователя или от root.

Официальный образ

Официальный образ ALT можно получить по ссылке: https://hub.docker.com/_/alt/. Для запуска контейнера достаточно выполнить следующую команду:

docker run --rm -it alt

По умолчанию используется образ из тега latest, который указывает на последний стабильный бранч. Например, сейчас это p10.

Для использования образа sisyphus нужно указать соответствующий тег:

docker run --rm -it alt:sisyphus

Официальный образ доступен для следующих архитектур:

  • amd64
  • arm64v8
  • i386
  • ppc64le

Производные образы

По адресу https://hub.docker.com/u/altcloud/ находятся специализированные образы под конкретные задачи, построенные на основе официального образа. Сборка этих образов осуществляется из Dockerfile'ов по адресу https://github.com/alt-cloud/ALT-Dockerfiles/tree/sisyphus.

Существуют образы для следующих задач:

  • веб серверы nginx и apache2;
  • хранение конфигурации etcd;
  • интерпретаторы для запуска своих приложений python и ruby;
  • и другие.

Сборка базового образа с использование mkimage-profiles

Rootfs для официального образа собирается из профиля ve/docker. Собрать его можно следующей командой.

$ make ve/docker.tar.xz

Полученный rootfs нужно собрать, чтобы получить образ. Для этого нужно создать каталог, скопировать в него rootfs и создать Dockerfile со следующим содержимым:

FROM scratch

ADD docker-latest.tar.xz /

RUN true > /etc/security/limits.d/50-defaults.conf

# overwrite this with 'CMD []' in a dependent Dockerfile
CMD ["/bin/bash"]

Затем можно собрать образ:

$ docker build --rm --tag=my-image .

Где my-image - это имя образа.

Rootless

Для запуска docker демона от пользователя можно использовать пакет docker-engine-rootless. Установить его можно следующей командой:

# apt-get install docker-engine-rootless

Далее нужно насроить запуск демона от пользователя:

$ dockerd-rootless-setuptool.sh install.

И экcпортировать переменную DOCKER_HOST:

export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock

Последнюю строку можно добавить, в файл из которого шелл инициализирует переменные, например, в ~/.bash_profile, если используется bash.