docker - 两个 docker 容器之间的 rsync

标签 docker rsync

我正在使用 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/

相关文章:

vagrant - 在 Ansible 中获取 rsync 以与 Vagrant 配合使用

java - 在Windows上从java调用rsync + ssh的问题

mysql - 在与 Docker 不同的端口上运行 MySql

docker - Kubernetes-上传crisocket : timed out waiting for the condition时出错

python - 从 docker 容器内部向 localhost 发出请求

synchronization - rsync 操作在文件级别是原子的吗?

docker - 忽略 .dockerignore 中的所有 .git 文件夹

docker - 如何知道使用了哪个命令或组合文件来启动 Docker 容器?

python - 目标设备上的 sudo rsync

c - 段错误 - 使用 librsync 库时