Docker
Docker – это открытая платформа для разработки, доставки и запуска приложений. Состоит из утилиты командной строки docker, которая вызывает одноименный сервис (сервис является потенциальной единой точкой отказа) и требует права доступа root. По умолчанию использует в качестве Container Runtime runc. Все файлы Docker (образы, контейнеры и др.) по умолчанию хранятся в каталоге /var/lib/docker.
Установка Docker
Установка Docker и Docker Compose:
apt-get install docker-engine docker-compose
Для запуска Docker от пользователя (не root) следует выполнить несколько шагов:
Добавить пользователя в группу docker
;
usermod ИМЯ_ПОЛЬЗОВАТЕЛЯ -aG docker
Выполнить повторный вход в систему.
Запуск сервиса docker:
systemctl enable --now docker
Настройка подключения клиента Docker к репозиторию по HTTP
На клиенте, отредактируйте файла /etc/docker/daemon.json
Нужно добавить блок с примерным содержимым:
{
"insecure-registries" : ["myregistrydomain.com:5000", "0.0.0.0"]
}
Далее перезагружаем Docker:
systemctl restart docker
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 в контейнере
docker run -d -p 5000:5000 --name my-registry registry:2
Непроверенное
Создание собственного базового образа ОС с помощью tar
Работа должна выполняться в системе, из которой мы сделаем образ. Набор команд одинаковый и не зависит от дистрибутива Linux. При желании, мы можем заранее установить необходимые инструменты или наоборот, чтобы образ занимал меньше места, удалить некоторые пакеты и файлы.
После вводим команду:
tar --numeric-owner --exclude=/proc --exclude=/sys -cf alt-base.tar /
*где alt-base.tar
будет именем tar-файла с нашей системой. В него попадет содержимое всех каталогов, кроме /proc
и /sys
.
И создаем образ:
cat alt-base.tar | docker import - alt-base:11.1
*где alt-base.tar
— созданный тарбол; alt-base:11.1
— имя образа, который будет создан.
Проверяем:
docker images
Docker Desktop
https://docs.docker.com/desktop/troubleshoot-and-support/faqs/linuxfaqs/
epm play docker-desktop
grep "$USER" /etc/subuid >> /dev/null 2&>1 || (echo "$USER:100000:65536" | sudo tee -a /etc/subuid)
grep "$USER" /etc/subgid >> /dev/null 2&>1 || (echo "$USER:100000:65536" | sudo tee -a /etc/subgid)
apt-get install shadow-submap
control newgidmap public
control newuidmap public
Ну, ошибок больше нет, но Docker Engine тупо не стартует