Once configured to accept one or more ssh keys, it will permit one to use rsync+ssh to store data or to read data to/from the docker container.
The container is exporting:
- port 22 (for ssh connections)
/data
volume
docker build --rm -t ssh-rsync-image .
- First you need to create at least one ssh key (without passphrase)
ssh-keygen -t rsa -f ~/.ssh/id_rsa_rsync -N ''
- Run the container:
docker run -itdP -p 22222:22 -v ~/data:/data -e AUTHORIZED_KEYS="rw:`cat ~/.ssh/id_rsa_rsync.pub`" --name ssh-rsync-server ssh-rsync-image
- Check logs:
docker logs ssh-rsync-server
- Rsync local
/etc
to remote/data/etc
(note: all paths are always relative to/data
)
rsync -av -e "ssh -i $HOME/.ssh/id_rsa_rsync -p 22222" /etc root@127.0.0.1:/
- each key has to be prefixed by rw: or ro:, repectively for read+write access or read-only access
- multiple keys can be specified, separated by "," (commas)
Exemple: AUTHORIZED_KEYS="rw:myfirstkey, ro:mysecondkey"
Inspired by: