我正在使用 rsync 在 Ubuntu 网络中设置备份/同步。
假设一个桌面(Ubuntu 18.04)-ip: 10.0.0.13
运行带有两个 Container 的 docker :
Client_A: 2001 -> 22/tcp , 8001 -> 80/tcp
Client_B: 2002 -> 22/tcp , 8002 -> 80/tcp
所有 3 个镜像均已安装并运行 ubuntu、apache2
目录:
DesktopOS Container1 Container2
10.0.0.13:80 10.0.0.13:8001 10.0.0.13:8002
⊢var ⊢var ⊢var
⊢www ⊢www ⊢www
⊢html ⊢html ⊢html
⊢1.txt ⊢2.txt ⊢3.txt
三个txt都可以在浏览器中访问
当我尝试将 3.txt 拉到 Container1 时:
rsync -av -e 'ssh -p 2002' --rsh=ssh user@10.0.0.13/var/www/html/ ~/BACKUP/
1.txt 已收到。
如何访问Container1中的3.txt?
请使用 IP 地址,因为我正在模拟真实网络,可能是现实世界中 1 台设备上的 1 个 docker。
最佳答案
最后我发现我只安装了 ssh,没有安装 ssh-server。
否则,防火墙会阻止访问。
#find out port 22, 2002, 2001 etc.
#from netstat result, is it listening?
netstat | grep 2002
安装 ssh 服务器
sudo apt install tasksel
sudo tasksel install openssh-server
对于防火墙:
sudo ufw allow 2001,2002
它解决了,感谢您尝试回答我的患者。
关于docker - 两个 docker 容器之间的 rsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54687595/