Docker: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
 
(не показано 9 промежуточных версий 3 участников)
Строка 1: Строка 1:
= Docker =
= Docker =


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


== Установка ==
== Установка ==
Строка 28: Строка 28:


=== Официальный образ ===
=== Официальный образ ===
Официальный образ ALT можно получить по ссылке: https://hub.docker.com/_/alt/.
Официальный образ ALT - это <code>registry.altlinux.org/alt/alt</code>, также его можно получить по ссылке: https://hub.docker.com/_/alt/.
Для запуска контейнера достаточно выполнить следующую команду:
Для запуска контейнера достаточно выполнить следующую команду:
: <code>docker run --rm -it alt</code>
: <code>docker run --rm -it alt</code>


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


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


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


Существуют образы для следующих задач:
Существуют образы для следующих задач:
* веб серверы <code>nginx</code> и <code>apache2</code>;
* веб серверы <code>unit</code>, <code>nginx</code> и <code>apache2</code>;
* хранение конфигурации <code>etcd</code>;
* хранение конфигурации <code>etcd</code>;
* интерпретаторы для запуска своих приложений <code>python</code> и <code>ruby</code>;
* интерпретаторы для запуска своих приложений <code>python</code> и <code>ruby</code>;
* и другие.
* и другие.


=== Сборка базового образа с использование mkimage-profiles ===
=== Сборка базового образа с использованием mkimage-profiles ===
Rootfs для официального образа собирается из профиля <tt>ve/docker</tt>. Собрать его можно следующей командой.
$ 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.
Установить его можно следующей командой:
: <code># apt-get install docker-engine-rootless</code>
Далее нужно настроить запуск демона от пользователя:
: <code>$ dockerd-rootless-setuptool.sh install</code>.
И экcпортировать переменную DOCKER_HOST:
: <code>export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock</code>
Последнюю строку можно добавить, в файл из которого шелл инициализирует переменные,
например, в ~/.bash_profile, если используется bash.
== Ссылки ==
[[Docker Reminder|Шпаргалка по Docker]]
<br>
<br>
<br>
[[Category:Виртуализация]]
[[Category:Виртуализация]]
{{Category navigation|title=Виртуализация|category=Виртуализация|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Виртуализация|category=Виртуализация|sortkey={{SUBPAGENAME}}}}
[[Категория:EnterpriseApps]]

Текущая версия от 15:37, 14 ноября 2023

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 - это registry.altlinux.org/alt/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://registry.altlinux.org/organization/alt находятся специализированные образы под конкретные задачи, построенные на основе официального образа. Сборка этих образов осуществляется из шаблонов Dockerfile'ов по адресу https://github.com/alt-cloud/image-forge/tree/master/org/alt.

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

  • веб серверы unit, 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.

Ссылки

Шпаргалка по Docker