【发布时间】:2020-08-06 08:42:42
【问题描述】:
我是 Docker 新手,我想将文件直接复制到本地计算机或从本地计算机复制到远程计算机上的 docker 容器,而不必将本地文件 scp 文件复制到远程计算机,然后使用 docker cp 复制这些文件文件到容器。我的容器上没有安装 SSH 服务器,我也不想重建我的镜像来包含它。
我尝试了以下第二个答案给出的解决方案:How to SSH into Docker?。我在托管 Docker 的远程机器上运行了以下命令:
docker run -d -p 2222:22 -v /var/run/docker.sock:/var/run/docker.sock -e CONTAINER=kind_tu -e AUTH_MECHANISM=noAuth jeroenpeeters/docker-ssh
kind_tu 是我正在运行的容器的名称。
然后在我的本地机器上使用:ssh -L 2222:localhost:2222 remote_account_name@remote_ip,然后是scp -P 2222 test_file remote_account_name@remote_ip:/destination/path(我也不熟悉端口转发,所以我不确定我的符号是否正确)。这样做时,我得到以下信息:
ssh: connect to host remote_ip port 2222: Connection refused
lost connection
由于远程机器在我学校的校园内,这可能是防火墙的问题吗?
总而言之,我不确定我正在做的事情是否正确。
【问题讨论】:
-
由于 Docker 容器被相当常规地删除和重新创建,尝试将文件直接复制到容器文件系统中(一旦容器被删除,它们就会丢失)通常不是正确的方法。您可能会考虑绑定挂载主机目录(保存复制步骤),甚至将这些文件直接构建到您的映像中。
-
嗨大卫,我目前正在从我的容器中构建的软件运行模拟,我需要反复将可视化文件从远程容器移出到我的主机,以便将它们运行到可视化程序中.我想知道您是否可以详细说明绑定安装是什么以及它是否是解决我的问题的最佳方法
标签: docker ssh scp portforwarding