码头组成,运行容器在网络: 主机

我想使用 docker-compose 在“ host”网络中产生3个服务:

version: '2'
services:
mysql:
image: mysql
net: "host"
nginx:
image: nginx
net: "host"
app:
image: tomcat
net: "host"

我得到了以下错误:

$ docker-compose up
[31mERROR[0m: Validation failed in file '.\docker-compose.yml', reason(s):
Unsupported config option for services.app: 'net'
Unsupported config option for services.mysql: 'net'
Unsupported config option for services.nginx: 'net'

我在窗口上使用 boot2docker。

Docker 和 Docker-撰写版本:

$ docker -v
Docker version 1.10.2, build c3959b1
$ docker-compose -version
docker-compose version 1.6.0, build cdb920a

如果我使用 docker run --net = "host"手动运行所有服务,一切都正常。

在文档中我读到,命令是 在码头支持-组成:

网络模式。使用与 docker 客户端相同的值—— net 参数。

网址: 「桥」

网址: “无”

Net: “ Container: [ name or id ]”

网址: 「主持人」

Https://docs.docker.com/v1.6/compose/yml/#net

我做错了什么?

296945 次浏览

那些文件都过期了。我猜 URL 中的1.6是 Docker 1.6而不是 Compose 1.6。在这里查看正确的语法: https://docs.docker.com/compose/compose-file/compose-file-v3/#network_mode。在使用 v2/v3 YAML 格式时,需要查找 network_mode

打印吧

network_mode: "host"

也许我回答得太晚了。但是我也有一个问题,配置主机网络的 Docker 组成。然后,我彻底阅读了文档并做了修改,结果证明是有效的。请注意,此配置适用于 docker-compose 版本“3.7”。在这里,einwohner _ net 和 elk _ net _ net 是我的应用程序所需的用户定义网络。我正在使用主机网络获得一些系统度量。

链接到文档 https://docs.docker.com/compose/compose-file/#host-or-none

version: '3.7'
services:
app:
image: ramansharma/einwohnertomcat:v0.0.1
deploy:
replicas: 1
ports:
- '8080:8080'
volumes:
- type: bind
source: /proc
target: /hostfs/proc
read_only: true
- type: bind
source: /sys/fs/cgroup
target: /hostfs/sys/fs/cgroup
read_only: true
- type: bind
source: /
target: /hostfs
read_only: true
networks:
hostnet: {}
networks:
- einwohner_net
- elk_elk_net
networks:
einwohner_net:
elk_elk_net:
external: true
hostnet:
external: true
name: host

你可以试试加法

network_mode: "host"

例如:

version: '2'
services:
feedx:
build: web
ports:
- "127.0.0.1:8000:8000"
network_mode: "host"

列表选项可用

network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]"

Https://docs.docker.com/compose/compose-file/#network_mode