我想要使用与主机网络对接。
我有一个码头容器,可以访问本地REST。通常我会跑
docker run --net=host -p 18080:8080 -t -i containera
它可以访问运行在http://127.0.0.1:8080
上的主机REST。因为我想要缩放容器containera
,所以我找到了用于扩展容器的对接者组合。但是,来自文档的停靠程序撰写文件不起作用。对接器容器不查询REST。
我尝试了下面的撰写文件,但是属性
version: "3"
services:
web:
image: conatinera:latest
network_mode: "host"
deploy:
replicas: 1
resources:
limits:
cpus: "0.5"
memory: 4G
restart_policy:
condition: on-failure
ports:
- "18080:8080"
但是属性network_mode
被忽略/不允许。带着信息
Ignoring unsupported options: network_mode
发布于 2019-06-13 14:17:54
发布于 2019-06-13 18:24:54
您正在混合在组合部署和群集部署中无效的选项。
如果您正在使用docker-compose进行部署,那么您的撰写文件应该如下所示:
version: "3"
services:
web:
image: conatinera:latest
network_mode: "host"
restart: on-failure
在使用主机模式网络时,Te选项deploy
在组合模式上被忽略,端口选项被忽略。我建议不要使用主机模式网络,并在另一个容器中使用反向代理来平衡缩放的容器。
(当您澄清没有使用群集部署时,请随意忽略这部分答案)。
如果您使用的是群部署,那么您的撰写文件应该如下所示:
version: "3.4"
services:
web:
image: conatinera:latest
deploy:
replicas: 1
resources:
limits:
cpus: "0.5"
memory: 4G
restart_policy:
condition: on-failure
networks:
- host
networks:
host:
name: host
external: true
同样,已发布的端口和主机模式网络不会混合。另外,您的扩展可能会失败,因为所有容器都将尝试绑定到同一个端口。我建议不要使用主机模式网络,让对接者负载平衡你的副本。
发布于 2021-09-05 11:03:08
我也面临着同样的问题。我发现当network_mode
设置为host
时,端口映射无法工作,因为容器将查找主机的端口。因此,移除端口映射对我来说是有效的,如下所示。
services:
web-abc:
build: ./abc
# ports:
# - "7000:7000"
volumes:
- .:/code
network_mode: host
https://stackoverflow.com/questions/56582446
复制相似问题