For moving some docker images around, or VPN .conf
files; sometimes I do this:
from local to remote
docker save alpine:latest | ssh remote-host "cat - | docker import - alpine:latest"
docker save alpine:lates
export or save file
ssh remote-host
ssh to remote-host
cat - |
read from STDIN and pipe it
docker import - alpine:latest
read from STDIN and save it
Then alpine:latest
will be available on remote-host
from remote to local
docker import - getmeili/meilisearch < <(ssh remote-host docker save getmeili/meilisearch)
ssh remote-host
ssh to remote-host
docker save getmeili/meilisearch
run this command
<(CMD)
redirect the output back to STDIN
<
read from STDIN
docker import - getmeili/meilisearch
read from STDIN
Then getmeili/meilisearch
will be available on local host.
from remote to another remote (by help of a local)
cat - < <(ssh remote-host-1 "cat /home/pf/configs/shf.conf") | ssh remote-host-2 "cat - > /tmp/shf.conf"
In this style, I download shf.conf
file from the remote-host (1) and without write it to desk sent it to another remote-host (2).
[ remote-1 ] => [ local (mypc)] => (remote-2)
Actually we can omit cat - <
and use:
ssh remote-host-2 "cat - > /tmp/shf.conf" < <(ssh remote-host-1 "cat /home/pf/configs/shf.conf")
And this also sends newline if we be prompt for password , so the third version is better:
ssh remote-host-1 "cat /home/pf/configs/shf.conf" | ssh remote-host-2 "cat - > /tmp/shf.conf"