繁体   English   中英

docker 网络 - 主机模式与桥接模式 - 端口映射

[英]docker networking - host mode vs bridge mode - port mapping

在生产中,推荐使用host模式联网而不是bridge模式,以避免数据包转发开销。

$ docker container run --help | grep "network"
      --network network                Connect a container to a network
      --network-alias list             Add network-scoped alias for the container

Cloudformation 资源类型AWS::ECS::TaskDefinition option( NetworkMode ) 内部使用决定了启动 docker 容器的网络模式,它说:

如果网络模式为host ,则在使用端口映射时,您无法在单个容器实例上运行同一任务的多个实例。


使用AWS::ECS::TaskDefinition

我正在启动主 jenkins(docker 容器)的单个实例,端口映射为8080:8080 EC2 端口 8080 与容器端口 8080 的映射。


什么意思? 使用端口映射时,无法在单个容器实例上运行同一任务的多个实例......

当您使用network mode作为主机,集装箱股份作为描述主机的网络命名空间在这里,因此端口映射不生效。 这意味着您无法将容器的 8080 端口映射到主机的 80 端口,因为当容器公开 8080 端口时,它将直接在主机的 8080 端口上可用。

使用端口映射时,无法在单个容器实例上运行同一任务的多个实例....

容器实例基本上是一种特殊类型的EC2实例中所描述这里 这意味着如果您在同一台主机(容器实例)中运行相同任务的 1 个以上实例,它们将公开相同的端口(例如 8080),该端口又直接映射到主机上的相同端口,因此导致冲突。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM