如何在网络中公开?

时间:2016-12-23 01:09:09

标签: linux docker docker-compose

以下示例来自eval $(echo "$Line" | sed "s/^\(.*\) (\(.*\)) \[\(.*\)]$/TITLE='\1' CHAPTER='\2' PAGENUMBER='\3'/") echo "$TITLE + $CHAPTER + $PAGENUMBER" How to Use BeanShell: JMeter's Favorite Built-in Component

根据我的理解,他们希望在docker-compose容器中提供redis端口6379。

他们为什么没有

web

expose: - "6379" 容器中?

redis

2 个答案:

答案 0 :(得分:1)

由于我们已将容器分配给docker网络,因此您不再需要链接。如果没有链接,除非您使用docker run -P发布所有端口,否则在容器上公开端口没有任何价值。容器可以与任何其他容器上打开的任何端口进行通信(如果它们位于同一网络上)(假设ICC的默认设置),因此暴露端口变为noop。

通常,您只通过Dockerfile公开一个端口作为运行图像的指示器,或使用-P标志。还有一些项目会查看其他容器的暴露端口,以了解如何与它们交谈,特别是我考虑使用nginx-proxy,但这是一个独特的案例。

但是,发布端口使得该端口可以从docker主机获得,这需要始终使用docker-compose.yml或run命令(您不希望图像作者)能够在没有某种形式的本地管理员确认的情况下影响docker主机。发布特定端口时,不需要首先公开它。

答案 1 :(得分:1)

来自official Redis image

  

此图片包含EXPOSE 6379(redis端口),因此标准   容器链接将使其自动可用于链接   容器(如下例所示)。

这几乎是典型的做事方式。

Redis Dockerfile