Данная статья является частью серии статей: Виртуальная машина для pet-проектов
И является продолжением статьи Создание новой ВМ. Настройка сети. Доступ по SSH
Вводные
В рамках статьи используется ВМ на ОС Ubuntu 22.04, развернутая в облаке Cloud.ru.
На ВМ есть два пользователя: user1 (с правами sudo) и user2 (без прав sudo)
Планируется, что user2 будет использовать Docker.
Перед тем как начать
Подключаемся по SSH к ВМ и обновляем пакеты
sudo apt update && sudo apt upgrade -y
Если есть сетевые ошибки, то обращаемся к статье Создание новой ВМ. Настройка сети. Доступ по SSH к разделу "Настраиваем доступ в сеть".
В прошлой статье мы сделали так, что подключиться по SSH может только user2, а у него нет прав sudo, поэтому необходимо переключить пользователя на user1
su - user1
Подготавливаемся к установке Docker
sudo apt install ca-certificates curl -y
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
Устанавливаем Docker
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Отступление: обновление ядра и перезапуск служб
Вполне возможно, у вас может появиться сообщение, что запущено старое ядро, а установлено новое.
А после нажатия на Ok появится другое окно, что надо перезапустить службы:
Стрелками вниз перемещаемся по списку и пробелом проставляем звездочки напротив каждой службы.
Tab-ом выбираем Ok и нажимаем Enter
После этого делаем ребут
sudo reboot
Нас выкинет из SSH соединения. Надо подождать минуты 2, пока компьютер применит обновления
И заново зайдём по SSH
Проверяем корректную установку докера
Переключимся на пользователя с sudo
su - user1
sudo docker run hello-world
Должны получить что-то подобное:
Добавляем user2 в группу пользователей docker
sudo usermod -aG docker user2
Проверяем работу Docker для user2
Переключаемся на пользователя user2
su - user2
Иногда назначение в группу может не подхватиться внутри одной сессии терминала, поэтому для надежности применяем команду newgrp
newgrp docker
docker run hello-world
На этот раз команда без sudo, т.к. user2 добавлен в группу docker
На этом этапе можно завершить настройки, но с добавлением user2 в группу docker образовался бэкдор в безопасности ОС, для pet проектов этого достаточно, но как сделать работу с docker более безопасной, описано отдельно.