我拼命试图在docker容器中运行tftp-hpa。我从dockerfile构建了一个镜像,并从以下代码开始:docker run -v /tmp:/srv/tftp -d -p 69:69/udp -t tftp_server
它已经启动并正在运行,我可以通过虚拟docker界面访问服务器:
me@hostmachine$ tftp 172.17.0.79
tftp> get /srv/tftp/test
Received 7 bytes in 0.0 seconds
但是从我看来,-p 69:69 / udp开关应该将主机的69端口转发到容器端口69。但这似乎不起作用:
me@hostmachine$ tftp localhost
tftp> get /srv/tftp/test
Transfer timed out.
从netstat中,我看到主机上的端口69已打开。
我使用httpd服务器和端口80尝试了完全相同的方案。它在这里起作用,我可以在浏览器中通过127.0.0.1:80访问该网站。
主机为ubuntu 15.04 intel, docker 镜像基于debian基本镜像。
有谁能够帮助我?我有什么想念的吗?任何想法如何调试?我将很乐意分享我的Dockerfile或任何其他信息,但试图使问题简短。
最佳答案
尝试将Docker容器的网络模式设置为“主机”。
即
1)如果您使用“docker run”运行容器,则附加选项“net = host”
2)如果您正在使用docker-compose运行,则在tftp服务定义块下,添加“network-mode = host”行
关于docker - 无法连接到docker为tftp发布的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31658497/