Încerc să implementez containere folosind docker-compune
la serverul de la distanță prin SSH.Serverul de la distanță SSH poate fi accesat numai prin proxy SOCKS. Am creat ~/.ssh/config
cu configurație SOCKS validă pentru asta:
Gazdă <my.host>
HostName <my.host>
ProxyCommand socks-connect -S <socks-user>@<socks-host>:<socks-port> %h %p
Port <ssh-port>
Utilizator <ssh-user>
IdentityFile ~/.ssh/<ssh-key>
Această configurație funcționează bine: mă pot conecta prin proxy folosind ssh <gazdă.mea>
comanda.
Apoi am creat contextul Docker și l-am testat:
$ docker context create remote --docker "host=ssh://<my.host>"
$ docker --context=remote ps
<lista de containere care rulează pe gazda la distanță>
Dar când încerc să folosesc acest context cu docker-compune
, eșuează cu eroare:
$ docker-compose --context=remote --verbose ps
EROARE: Am primit un răspuns de eroare de la serverul SOCKS: 4 (gazdă inaccesabilă)
FATAL: nu s-a putut începe retransmiterea prin SOCKS
kex_exchange_identification: Conexiune închisă de gazda la distanță
De asemenea, am încercat să folosesc DOCKER_HOST
mediu, dar a primit aceeași eroare: env DOCKER_HOST="ssh://<gazda-mea>" docker-compose ps
.
Deci se pare că problema este în docker-compune
pentru că pură docher
comenzile funcționează corect. Care ar putea fi problema aici și cum pot remedia acest comportament?
Versiunea clientului Docker: 20.10.7
Versiunea serverului Docker (la distanță): 19.03.12
Versiunea de compunere Docker: 1.29.2