Rsync(或ssh)到EC2上的远程Docker容器

因为rsync使用ssh来传输文件,所以我认为这可以归结为能够远程ssh到我的docker集装箱。

我目前有一个基地centos:6.6docker集装箱运行从端口转发2222-> 22:

IMAGE COMMAND CREATED STATUS PORTS a374fd62f97f "/bin/bash" 2 hours ago Up 2 hours 0.0.0.0:2222->22/tcp 

我可以使用ssh进入运行docker服务的服务器

 ssh -i key.pem ec2-user@PUBLIC_IP 

从我的EC2实例中,在容器中安装openssh-server之后,我可以使用以下方法进入我的容器:

 ssh root@127.0.0.1 -p 2222 

但是,当我尝试ssh:

 ssh root@PUBLIC_IP -p 2222 

它以“拒绝连接”失败。 (EC2中的我的安全组在端口2222上打开了所有IP空间上的入站)

如果ssh工作也许scp会

 scp root@${REMOTE_IP}:/tmp/remotefile /tmp/localfile 

创build容器可以装载的aws Elastic Block Store卷可能会更容易,然后将数据复制到那里

…或S3存储桶…然后复制到本地

 # ........ create s3 bucket curr_bucketname=s3://${AWS_S3_BUCKET} aws s3 mb ${curr_bucketname} # ........ list buckets aws s3 ls 

然后将S3存储桶安装到您的容器中,然后安装一次

 # ........ copy local dir to s3 aws s3 sync /opt/my/local/dir/of/files/ ${curr_bucketname} # ... copy s3 bucket to populate (or just refresh) local dir aws s3 sync ${curr_bucketname} /usr/tmp/local/dir