Docker - для чего?
Докер нужен для создания изолированных контейнеров, в которых вы можете кодить и творить что хотите, а потом делиться ими. Можно запустить на нем свой мини-линукс, который потом легко интегрируется со многими IDE. Собрали код для абуза с кучей сложных зависимостей в контейнере, сделали коммит в образ, поделились образом с другом, друг без ебли установил образ в своем докере и пользуется вашими наработками без необходимости самому что-то настраивать.
Установка
Качаете установщик отсюда:
https://docs.docker.com/desktop/windows/install/
(и следуете процессу установки, если вы знаете английский)
No-brain жмете вперед, попросит перезагрузиться. Во время перезагрузки включаем в биосе виртуализацию если она не включена, как ее включить - вбейте в гугл свою материнскую плату и "how to turn on virtualization" и ищите видос. Проверить включена ли она можно в диспетчере задач:
После перезагрузки docker скажет вам ошибку, что надо установить еще WSL (Windows Subsystem for Linux - слой совместимости для запуска Linux-приложений), качаете, ставите:
https://docs.microsoft.com/en-us/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package
Если все сделано правильно, то вас встретит такой интерфейс:
https://hub.docker.com/search?q=ubuntu
Можете выбрать образ под определенный язык программирования, где уже будет все установлено для его использования, я обычно выбираю чистую убунту, куда сам всё ставлю.
После выбора образа копируете команду, которая справа:
Ее прописываете в консоли, не забыв запустить docker перед этим. После чего в самом приложении докера во вкладке Images вы увидите ваш образ:
Наводитесь на него и жмете RUN:
Здесь указываете имя контейнера, а можете не указывать и докер сам даст какое-нибудь забавное имя.
После этого у вас во вкладке Containers появится ваш контейнер/виртуалка, которую можно включать, выключать, использовать. Нажав на первую кнопку CLI, видим следующее:
/bin/bash
Пакеты устанавливать можно через apt install, например, установка питона:
apt update apt install python
Первая команда нужна при первом запуске, чтобы обновить репозитории на машине, чтоб она знала сама откуда что качать.
При установке будет просить нажать Y и enter. Если уверены в себе, можете добавлять флаг -y, чтобы не просило:
Интеграция с VSCode
Устанавливаем расширение:
https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers
В vscode жмем сочетание клавиш ctrl+shift+p, печатаем attach:
Если ваш контейнер запущен, то его можно будет выбрать:
Теперь вы можете разрабатывать код в изолированном контейнере. Открыв консоль в VSCode, можно удостовериться, что вы используете не исходную машину, а контейнер.
Быстро переподкличаться к прошлому workspace можно вот так:
Менять корневую папку в VSCode можно через ctrl+o:
Заключение
Docker - это круто, модно, молодежно и удобно. Основным мотивом начать использовать докер для меня стала новость о прикольном изменении библиотеки node-ipc, которая использовалась во многих популярных и крупных библиотеках для nodejs, под ударом оказался даже софт для разработки игр Unity, а именно их Hub. Библиотека затирала все ваши файлы, если ваш ip из России или Беларуси. Подробнее о ней - https://www.youtube.com/watch?v=i2fsOjJrN6w. Если бы вы просто установили одну из либ для nodejs, которая была зависима от node-ipc, то вашему компу пришел бы кирдык, после запуска проекта, поэтому безопасность во время разработки необходимо тоже соблюдать.