如何从docker容器内部访问特定的运行主机端口
我正在尝试从Docker容器中访问/共享主机上已运行的端口(7497)。我正在尝试与主机上的程序“对话”,该主机上有一个在7497上运行的套接字端口。这是在unix主机上设置的 当端口在主机上一直处于活动状态时,如何从docker仅公开用于双向操作的specefic端口?可能吗 我无法用示例-p7497:7497映射端口,因为我得到一个错误“bind:address ready in use”。此错误是正确的,因为该端口由主机中的程序使用 我获取访问权限的唯一方法是在启动容器时在run命令中使用--network host--userns=host,例如:如何从docker容器内部访问特定的运行主机端口,docker,containers,port,host,Docker,Containers,Port,Host,我正在尝试从Docker容器中访问/共享主机上已运行的端口(7497)。我正在尝试与主机上的程序“对话”,该主机上有一个在7497上运行的套接字端口。这是在unix主机上设置的 当端口在主机上一直处于活动状态时,如何从docker仅公开用于双向操作的specefic端口?可能吗 我无法用示例-p7497:7497映射端口,因为我得到一个错误“bind:address ready in use”。此错误是正确的,因为该端口由主机中的程序使用 我获取访问权限的唯一方法是在启动容器时在run命令中使用
nvidia-docker run -e HOME=/tmp -it --rm -v /home/kc/Deep_Learning:/projects --network host --userns=host tf_py3_gpu_science:1.4
但这样我就暴露了所有端口,为什么我担心一些安全问题。尝试杀死另一个使用端口7497的进程。或者您可以使用其他端口代替7497,
-p 7498:7497
。然后从外部,您可以使用localhost:7498(Linux或Macos)嗨,我不确定我是否了解您。我无法终止主机上运行的进程,因为这是通信端口。我要说的是那个港口的通讯。我意识到这一定是我在docker上遗漏的基本问题,因为这个问题在网上被问了很多(许多帖子也在stackoverflow上),但我看不出有一个“简单”的解决方案。你不需要-p
选项来连接容器;它只需要从外部连接到一个容器中。我想我也不明白这个问题。看起来您想从容器连接到主机上运行的东西。这不是一种常见的做法,但如果您仍然想这样做,您可以使用host.docker.internal
hostname连接到您的docker主机。谢谢dave,但我需要双向通信。我正在将数据从主机上运行的软件加载到容器中的应用程序中,并将数据从容器加载到主机。如果我不开放港口,我就根本无法获得交通。