docker - 无法连接到docker为tftp发布的端口

标签 docker portforwarding tftp

我拼命试图在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/

相关文章:

docker - 将图像从 aws ecr 部署到 aws elastic beanstalk

ubuntu - docker ps 命令在哪里查找当前容器?

docker - 如何在 k8s 集群中设置 docker registry?

python - 从路由器后面制作一个公开可用的 TCPServer

linux - Tftp 命令实现在本地环形缓冲区中获取远程数据

java - 基于java NIO的TFTP客户端

shell - 检测docker是否在同一脚本中成功运行

mysql - SSH端口映射访问远程数据库

ubuntu - 无法连接到在 VirtualBox 内的 Xubuntu 上运行的 Jupyter 笔记本服务器

iphone - 有没有iPhone sdk的TFTP客户端,可以传文件到TFTP服务器?