Небольшая памятка для себя. Понадобилось воспользоваться докером в Windows 10. При этом – уже установлена Ubuntu внутри WSL2. То есть – ставить сверху ещё и графический Docker Desktop, поднимающий свои контейнеры в отдельных виртуалках WSL, особой необходимости нет. Управлять контейнерами можно прямо из Idea.
Небольшое неудобство возникло с тем, что Docker плагин в idea (под Win) поддерживает Docker for Windows, но не умеет напрямую работать с докером внутри WSL. Вариантов несколько, среди них – подключение через tcp socket или через ssh.
Против tcp socket возникли два аргумента – сложнее настроить (чтобы просто пара настроек – и заработало – такого не произошло, пришлось повозиться); кроме того – руководство Docker не рекомендует пользоваться им из-за наличия потенциальной уязвимости.
Остановился на ssh – это проще, и в целом удовлетворяет моим потребностям.
Настройка доступа к Docker в WSL2 через ssh
- Убедиться, что установлен ssh сервер (при необходимости – установить):
apt search openssh-server
- Разрешить подключения к серверу – отредактировать sshd_config (
sudoedit /etc/ssh/sshd_config
). Минимально необходимое – указать порт для подключения и способ аунтефикации (пример настроек: Port 22, PasswordAuthentication yes) - Перезапустить ssh сервер:
sudo service ssh restart
- И проверить возможность подключения:
ssh dimio@localhost
- Наконец – запустить сам docker (настройки демона лежат в /etc/docker/daemon.json):
sudo service docker start
- Убедиться в работоспособности:
docker ps
Настройка Idea для подключения к Docker через ssh
- Перейти в Настройки (Ctrl+Alt+S) -> Build, Execution, Deployment -> Docker
- Создать новое подключение к Docker, тип соединения с демоном – SSH
- Добавить конфигурацию SSH для подключения к WSL2, проверить подключение
Управление контейнерами Docker из Idea
На этом всё – теперь можно удобно взаимодействовать с контейнерами прямо из Idea (вкладка Services)