SSH从Docker容器到LAN上的服务器

SSH从Docker容器到LAN上的服务器,docker,docker-compose,Docker,Docker Compose,我有一个应用程序,可以生成运行在Docker容器中的图像文件。 生成映像后,我希望将其复制到局域网上的另一台服务器 我正在尝试使用SCP在我的LAN上创建一个静态IP,但容器无法看到它。如何向容器公开LAN IP?您需要使用-p命令和docker绑定端口。如果端口已在使用中,请尝试其他端口。所以:docker run-p22:24如果再次出现这种情况,您需要做的是查看端口22上运行的是什么。您可以通过sudo lsof-i-P-n | grep LISTEN或针对特定端口:sudo lsof-i

我有一个应用程序,可以生成运行在Docker容器中的图像文件。 生成映像后,我希望将其复制到局域网上的另一台服务器


我正在尝试使用SCP在我的LAN上创建一个静态IP,但容器无法看到它。如何向容器公开LAN IP?

您需要使用-p命令和docker绑定端口。如果端口已在使用中,请尝试其他端口。所以:
docker run-p22:24
如果再次出现这种情况,您需要做的是查看端口22上运行的是什么。您可以通过
sudo lsof-i-P-n | grep LISTEN
或针对特定端口:
sudo lsof-i:22

在此处发布我的解决方案,以防它对其他人有帮助

我的问题是如何将Docker包含的应用程序生成的文件复制到LAN机器

我找到的解决方案是在这里使用Samba share Docker:


我的应用程序与Samba容器共享一个卷,我的LAN机器连接到共享的Samba目录。它比使用ssh更健壮,而且似乎比使用网桥网络IMO要简单得多

你可以使用
--network=host
或者更好的
docker cp
本地主机然后
scp
你有没有公开ssh端口?如果我在docker compose文件中绑定端口22:22,它会抱怨地址已经在使用
我正试图将scp用于我局域网上的静态IP,但是容器看不到它,这意味着什么,容器确实可以访问外部静态ip。请展示你所做的,错误是什么。如果您在这方面的进展不包括
--network=host
请更新您的帖子:)如果您绑定了主机的端口22,那么在docker容器停止之前,您将无法通过ssh连接到它。您不需要
docker run-p
选项从容器建立出站连接。