Я пытаюсь развернуть контейнеры, используя docker-compose
на удаленный сервер через SSH.Доступ к удаленному серверу по SSH возможен только через SOCKS-прокси. я создал ~/.ssh/config
с действительной конфигурацией SOCKS для этого:
Хост <мой.хост>
Имя хоста <мой.хост>
ProxyCommand socks-connect -S <socks-user>@<socks-host>:<socks-port> %h %p
Порт <ssh-порт>
Пользователь <ssh-пользователь>
Идентификационный файл ~/.ssh/<ssh-ключ>
Эта конфигурация работает нормально: я могу подключиться через прокси, используя ssh <мой.хост>
команда.
Затем я создал контекст Docker и протестировал его:
$ docker context create remote --docker "host=ssh://<my.host>"
$ докер --context=удаленный PS
<список запущенных контейнеров на удаленном хосте>
Но когда я пытаюсь использовать этот контекст с docker-compose
, вылетает с ошибкой:
$ docker-compose --context=remote --verbose ps
ОШИБКА: получен ответ об ошибке от сервера SOCKS: 4 (хост недоступен)
FATAL: не удалось начать ретрансляцию через SOCKS
kex_exchange_identification: Соединение закрыто удаленным хостом
Кроме того, я пытался использовать DOCKER_HOST
среду, но получил ту же ошибку: env DOCKER_HOST="ssh://<my-host>" docker-compose ps
.
Так что похоже проблема в docker-compose
потому что чистый докер
команды работают корректно. В чем может быть проблема и как я могу исправить это поведение?
Версия клиента Docker: 20.10.7
Версия сервера Docker (удаленно): 19.03.12
Версия компоновки Docker: 1.29.2