scp到远程主机上的Docker容器

时间:2018-09-19 15:45:53

标签: docker amazon-ec2

我正在分别的区域(爱尔兰和伦敦)中运行两个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容器。

2 个答案:

答案 0 :(得分:0)

确保您的docker映像的端口22映射到500/4500,以便您可以使用

scp -P YOUR_PORT file USERNAME@AWS_IP:/file  

您也可以使用docker cp将文件复制到主机,然后将scp复制到另一台计算机,然后使用docker cp将文件复制到docker映像。

答案 1 :(得分:0)

您需要做的事情清单。

  1. 在两个容器上启用ssh端口(例如22)。
  2. public class GetJson { private readonly ConfigModel _ConfigModel; public GetJson(ConfigModel configModel) { _ConfigModel = configModel; } public void RetrieveValues() { //I've no idea how to call _ConfigModel of a constructor // and use those username, password in this method } } /将容器端口转发到两台计算机上的主机端口(例如2200:22)。
  3. 在防火墙中的主机上打开转发的端口。
  4. 现在EXPOSE
  5. 我忽略了您配置密码或基于密钥的通信这一部分,已经有很多资源了。