Небольшая памятка для себя. Понадобилось воспользоваться докером в 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)