在dockerhub上执行镜像教程之后,我成功地在远程Linux服务上运行了一个dockerhub应用程序。这里的主机是远程的ubuntu服务器,可以通过浏览器地址"http://localhost:8888/index.html““访问它。
docker run -it --rm -p 8888:8888 --shm-size=512M mathworks/matlab:r2022b -browser但是,问题是,应用程序只能从主机上的浏览器访问,而不能从本地计算机或同一局域网上的不同计算机浏览器访问。我已经很难找到一个解决方案,通过搜索网页,并试图通过指定以下URL地址访问它,但没有任何工作。
"http://localhost:8888/index.html"
"http://<linux_ip_id>:8888/index.html"
"http://<windows_ip_id>:8888/index.html"
"http://<container_ip_id>:8888/index.html"此外,我从其他来源中了解到,我需要将主机和本地计算机之间的网络方法设置为桥接,其解决方案是建立一个VM VirtualBox管理器。但是我的情况不同,主机是一个远程独立的ubuntu服务器。默认情况下,码头容器以桥接器的形式与主机通信,但我试图通过使用指定为--network=host的网络连接来运行对接容器,而上面的访问地址仍然不能工作!
注意:我的本地计算机是windows 10系统,它与远程Linux系统位于同一个局域网上,也就是说,我可以正常地平取服务器IP地址,也可以通过ssh连接到它。
发布于 2023-04-01 18:26:31
我也有过类似的情况。在Linux服务器VM上运行的Docker。尝试从其他网络中的其他机器远程访问码头集装箱。解决方案是修改linux服务器上的iptable:
iptables -I DOCKER-USER -i ensXX -s 0.0.0.0/0 -j ACCEPT此命令允许从任何网络连接。ensXX -是我的linux服务器网络接口(参见ifconfig)。
在执行此命令后,我能够远程连接到docker容器。
更多关于码头和iptable的信息:https://docs.docker.com/network/iptables/
发布于 2023-04-04 07:25:20
幸运的是,我能够通过使用ssh命令解决我的问题。在本地windows系统上使用ssh的引用命令如下所示。ssh -L 8888:<remote_linux_ip>:8888 <my_name>@<remote_linux_ip>
https://unix.stackexchange.com/questions/734323
复制相似问题