Очень частый кейс - вам надо всего-лишь один раз установить какую-то фигню, чтобы запустить, сделать и забыть. Например, надо запустить что-то на JS, и что требует Node; или надо обучить простую нейросетку.
В таком случае надо выполнять страшные команды sudo apt install ...
, которые хотят 400мб и больше вашего пространства.
А вычищать всё это после сделанного раза - лень. Да ещё и могут прилететь нетривиальные зависимости, которые пропадут только после переустановки системы.
Вопрос: Что делать?
Ответ: Создать независимое окружение через докер, и делать все установки в нём.
Благодаря тому что всё будет происходить в докере, это никак не повлияет на вашу систему, разве что придётся установить докер.
Я вообще не шарю в докере, и просто захотел законспектировать то что нарыл гуглением и что работало. Так что критика очень приветствуется. Скажите как правильно.
- Устанавливаем докер.
- Сначала надо создать пустой контейнер на основе Ubuntu:
Где
sudo docker run -v $(pwd):/folder -it ubuntu:20.04 bash
-v $(pwd):/folder
монтирует текущую папку с папку/folder
в этом докер-контейнере. - Теперь вы находитесь внутри контейнера, устанавливайте всё что хотите через обычный
sudo apt install ...
, настраивайте как хотите. Потом выходите черезexit
. - Теперь надо закоммитить изменения. Находим айдишник последнего запущенного контейнера через
sudo docker ps -a
. Когда нашли айдишник, выполняем с ним следующую команду:sudo docker commit <id> <имя>
- Теперь ваш контейнер сохранён под определённым именем. Чтобы потом запустить именно этот контейнер, нужно выполнять команду:
sudo docker run -v $(pwd):/folder -it <имя> bash
- После каждого изменения внутри контейнера нужно снова коммитить в него.
- Старые контейнеры можно удалять через
sudo docker rm <id>
.
jekyll
sudo docker run -p 4000:4000 -v $(pwd):/folder -it jekyll bash
_config.yml
: