我试图在Docker Swarm集群上运行jumanjiman / tftp-hpa 。 我已经通过启动服务
docker service create --name rsyslog --mode global --mount type=volume,source=rsyslog,destination=/var/run/rsyslog/dev jumanjiman/rsyslog docker service create --name pxe --replicas=1 --publish 69:69/udp \ --mount type=volume,source=rsyslog,destination=/var/run/rsyslog/dev \ --mount type=bind,source=foo,destination=bar \ jumanjiman/tftp-hpa
这成功地启动了服务
~# docker service ls ID NAME MODE REPLICAS IMAGE PORTS 775f4z5hyc0k rsyslog global 1/1 jumanjiman/rsyslog:latest q51fqjwe6rji pxe replicated 1/1 jumanjiman/tftp-hpa:latest *:69->69/udp
当我在容器内时,tftp在本地工作
/ # tftp 127.0.0.1 69 -c get /site/pxe-config.ign / #
日志:
2017-08-14T02:49:17.980695+00:00 2d41990895d0 in.tftpd[71]: RRQ from 127.0.0.1 filename /site/pxe-config.ign
但是,当我尝试通过入口networking连接时,它会失败
tftp> get /site/pxe-config.ign Transfer timed out.
日志:
2017-08-14T01:41:39.416653+00:00 2d41990895d0 in.tftpd[39]: RRQ from 10.255.0.2 filename /site/pxe-config.ign 2017-08-14T01:41:39.416735+00:00 2d41990895d0 in.tftpd[39]: tftpd: write: Operation not permitted
我已经加载了nf_conntrack_tftp和nf_nat_tftp模块,但我似乎无法让它在容器外正常工作。
尝试通过日志显示,以便端口正确转发到服务,只是由于某种原因阻止响应。
感谢任何帮助解决这个问题!