如何解决如何使服务仅在特定的docker网络上侦听?
我有连接到多个网络的docker服务。 例如-服务将附加到traefik入口网络-以及其他一些网络,例如etcd或minio。撰写文件可能如下所示:
version: "3.8"
services:
myservice:
image: ...
command: server --listen=0.0.0.0:8080
networks:
- public
- internal-api
- etcd
现在,当前,我们可以在示例中看到监听地址0.0.0.0:8080
但这不是我想要的-我希望此服务仅在public
界面上列出,并且不能在etcd
或internal-api
网络上发现。
我如何-通常,指定我要服务监听的docker网络?
解决方法
选项:
- 保持容器仅连接到必要的网络(这是最佳做法)
-
command: server --listen=< CONTAINER IP IN SPECIFIC NETWORK >:8080
- 在容器中设置防火墙
第二种选择的评论:
一种方法是使用docker-compose文件设置静态IP,或者使用以下命令获取当前运行的容器的IP:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <CONTAINER_NAME>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。