docker网络有些让我困惑。我有一个docker-compose.yml
文件,可以这样简化:
version: '3.8'
services:
foo:
...
networks:
- main_network
ports:
- "3000:3000"
bar:
...
networks:
- main_network
expose:
- "5000"
networks:
main_network:
公开端口而不将其发布到主机--它们仅可被链接的服务访问。只能指定内部端口。
如果这是真的,bar
应该只向foo
服务公开5000端口。而且它似乎像预期的那样起作用。如果,我将bash
运行到bar
服务中并执行:
$ ss -lntu
5000端口已正确打开:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
...
tcp LISTEN 0 128 0.0.0.0:5000 0.0.0.0:*
...
$ nmap -p1-65535 127.0.0.1
PORT STATE SERVICE
3000/tcp open ppp
所以,我不明白的是IRL,我的bar
服务能够连接到Mongo Atlas online或ping Internet。如果端口没有暴露/打开以接收它,它如何得到它的答案?
你所联系到的答案是旧的和不正确的。
>
expose
关键字主要是一个no-op。它的信息很丰富(“此映像将在这些端口上提供服务”),但它没有任何操作影响。
在Docker的旧版本中,expose
关键字可用于链接容器的服务发现,但(a)它仍然没有任何操作影响--无论是否有匹配的expose
,端口都可用--容器“链接”已被弃用一段时间。
默认情况下,容器具有出站internet访问权限。出站访问是通过主机防火墙NAT
表中的简单NAT规则(以及筛选器
转发
链中的相应规则)管理的。例如,在运行Docker 20.10.2的系统上,在forward
链中,我有:
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
第一条规则传递作为现有TCP连接一部分的数据包。这允许出站连接的返回数据包。
在static_cast、dynamic_cast、reinterpret_cast和const_cast中,只有static_cast能够返回所需类型的对象,而另一种类型只能返回表示的指针或引用。为什么会这样? 例子: 对于dynamic_cast:
我有几个微服务,每个微服务都有用于CRUD操作的RESTendpoint。我必须创建一个工作流,该工作流将从一个带有一些初始输入的微服务开始,但一个微服务的稍后输出可以用作其他微服务的输入。可以对这些REST API进行一些同步和异步调用。 我已经寻找了一些工作流引擎,但我不认为我可以在不编写任何java代码的情况下创建我的工作流。
我怀疑这是我需要改变的地方,但不知道如何改变。
由于这里有一些很好的答案,我基本上(显然是以有限的方式)理解了Haskell的的目的,并且它的定义是 然而,我不太清楚为什么是这个定义的一部分。据我所知,这就是本身的定义所在,但相关的留档并没有对此做太多说明。 我认为在
简短版本:Symfony服务配置做什么? 最近,在Symfony项目中工作时,我在文件中输入了无效的服务定义。我收到了这个非常有用的错误消息 配置键"foo"不支持"/用户/alanStorm/站点/symfony-4/my-project/config/services.yaml"中的定义"App\Services\ServiceA"。允许的配置键是"别名"、"父"、"类"、"共享"、"合成"、
问题内容: 我已经获得了WSDL文件,并且需要通过Internet使用此WSDL文件使用Web服务。我需要在Java中执行此操作。 有人可以告诉我这样做的步骤吗?我还要感谢一些有用的链接。 问题答案: 第一步是生成可以与此Web服务对话的类。看一下Axis2之类的开源解决方案。这将为您生成存根,以便您以代码与Web服务进行对话……然后,由您决定使用此服务。