【问题标题】:scp to Docker Container that is on Remote Hostscp 到远程主机上的 Docker 容器
【发布时间】:2018-09-19 15:45:52
【问题描述】:

我在不同的区域(爱尔兰和伦敦)运行两个 AWS EC2 Ubuntu 实例。每个实例上都运行一个 Docker 容器。

存在已建立的 IPSec 连接:

root@ip-10-0-1-178:/mnt# ipsec status
Security Associations (1 up, 0 connecting):
Ireland-to-London[2]: ESTABLISHED 37 seconds ago, 
172.17.0.1[34.X.X.X]...35.X.X.X[35.X.X.X]

以下是每个 IP 的一些:

Ireland  
Public IP: 34.X.X.X
Private IP: 10.0.1.178
VPC CIDR Block: 10.0.0.0/16
London  
Public IP: 35.X.X.X
Private IP: 10.10.1.187
VPC CIDR Block: 10.10.0.0/16
Docker(same for both)
Public IP: 172.17.0.1
VPC CIDR Block: 172.17.0.0/16
Ports open: 500 and 4500

我不知道如何使用 scp 将文件从一个实例上的 Docker 容器传输到另一个实例上的 Docker 容器。

【问题讨论】:

    标签: docker amazon-ec2


    【解决方案1】:

    确保你的 docker 镜像的 22 端口映射到 500/4500,这样你就可以使用了

    scp -P YOUR_PORT file USERNAME@AWS_IP:/file  
    

    您也可以使用 docker cp 将文件复制到主机,然后 scp 到另一台机器,然后使用 docker cp 复制到 docker 映像作为解决方法。

    【讨论】:

      【解决方案2】:

      你需要做的事情的清单。

      1. 在两个容器上启用 ssh 端口(例如 22)。
      2. EXPOSE / 将容器端口转发到两台机器上的主机端口(例如 2200:22)。
      3. 在防火墙中打开主机上的转发端口。
      4. 现在scp -P 2200 localfile.txt <london_user>@<london_public_ip>:<remote path>。
      5. 我忽略了您配置密码或基于密钥的通信的部分,这方面已经有很多资源了。

      【讨论】:

      • 所以我使用sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -i eth0 -p tcp --dport 500 -j ACCEPT sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 22 -j REDIRECT --to-port 500
      • 然后我在主机上尝试ufw allow 500/tcp,它仍然挂起
      • 那么我认为你的容器上没有安装 ssh 服务器,请使用 this docker image,它支持所有 ssh 配置。请参阅它的 运行示例。 docker port test_sshd 22 也会告诉你它转发到哪个端口,然后你可以简单地使用 ufw allow <port>/tcp 在你的主机上打开该端口。
      • 使用命令 docker run -d --cap-add=NET_ADMIN --name test -P -itv ~:/mnt/ test bash 后跟 docker port test 22,我得到 0.0.0.0:32768 并允许它。运行 docker container ls -a 的 PORTS 列读取为 0.0.0.0:32768->22/tcp。我更新了上面的命令以反映这一点。此时,我可能会开始回溯并一直在查看我的连接。我很确定我应该能够通过已安装的连接从 Docker ping 另一个公共 IP,对吗?您是否认为将 Docker 容器放在相同的子网上,尽管它们位于不同的主机上会搞砸?谢谢
      猜你喜欢
      • 1970-01-01
      • 2012-06-05
      • 2023-03-27
      • 2017-05-20
      • 2019-12-31
      • 2016-03-19
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      相关资源
      最近更新 更多