如何阻止对docker上特定端口的访问

如何阻止对docker上特定端口的访问,docker,security,firewall,access-control,Docker,Security,Firewall,Access Control,我有一个docker容器,它在主机上的特定端口(例如4567)上公开RESTful API。根据安全性要求,我需要阻止所有到达该端口(即4567)的请求,但来自特定应用程序(如oozie之类的调度器)的请求除外。我不太熟悉防火墙,但我猜第一部分(阻止对端口的访问)可以在防火墙中完成,但是我如何才能只打开对一个应用程序的访问?如果另一个应用程序是另一个docker容器,您甚至不需要公开任何端口,确保他们使用相同的docker网络..不,其他应用程序不在docker容器中通过TCP/ip无法判断连接

我有一个docker容器,它在主机上的特定端口(例如4567)上公开RESTful API。根据安全性要求,我需要阻止所有到达该端口(即4567)的请求,但来自特定应用程序(如oozie之类的调度器)的请求除外。我不太熟悉防火墙,但我猜第一部分(阻止对端口的访问)可以在防火墙中完成,但是我如何才能只打开对一个应用程序的访问?

如果另一个应用程序是另一个docker容器,您甚至不需要公开任何端口,确保他们使用相同的docker网络..不,其他应用程序不在docker容器中通过TCP/ip无法判断连接来自哪个应用程序,这不是docker问题,这只是TCP/ip的工作原理。其他选项可能是将防火墙设置为只允许某些IP,例如oozie正在运行的机器。更好地看到,这是一个REST服务,您可能会考虑使用反向代理,这些甚至将允许您添加基本的Author或TLS,即使您的DOCKER容器不实现它。我最近使用的一个好的反向代理是在响应头中应用CORS。