I'm running a container (node-exporter) in network mode host and connect ist with the extra_hosts option to traefik. However the connector tries to connect the host network to traefk, which fails and makes it crash:
traefik-network-connector-1 | 2025-07-12 21:09:23 - application - DEBUG - Connecting Traefik to network host.
traefik-network-connector-1 | Traceback (most recent call last):
traefik-network-connector-1 | File "/usr/local/lib/python3.12/site-packages/docker/api/client.py", line 275, in _raise_for_status
traefik-network-connector-1 | response.raise_for_status()
traefik-network-connector-1 | File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 1026, in raise_for_status
traefik-network-connector-1 | raise HTTPError(http_error_msg, response=self)
traefik-network-connector-1 | requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: http+docker://localhost/v1.51/networks/f4ffcd7cc1b2ef6018dbc60321d3823529c5ad2bca84023d1d55fee6b8b47a65/connect
traefik-network-connector-1 |
traefik-network-connector-1 | The above exception was the direct cause of the following exception:
traefik-network-connector-1 |
traefik-network-connector-1 | Traceback (most recent call last):
traefik-network-connector-1 | File "/usr/src/app/main.py", line 246, in <module>
traefik-network-connector-1 | connect_to_all_relevant_networks()
traefik-network-connector-1 | File "/usr/src/app/main.py", line 73, in connect_to_all_relevant_networks
traefik-network-connector-1 | connect_traefik_to_network(container)
traefik-network-connector-1 | File "/usr/src/app/main.py", line 121, in connect_traefik_to_network
traefik-network-connector-1 | network.connect(traefik_container)
traefik-network-connector-1 | File "/usr/local/lib/python3.12/site-packages/docker/models/networks.py", line 58, in connect
traefik-network-connector-1 | return self.client.api.connect_container_to_network(
traefik-network-connector-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
traefik-network-connector-1 | File "/usr/local/lib/python3.12/site-packages/docker/utils/decorators.py", line 19, in wrapped
traefik-network-connector-1 | return f(self, resource_id, *args, **kwargs)
traefik-network-connector-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
traefik-network-connector-1 | File "/usr/local/lib/python3.12/site-packages/docker/api/network.py", line 253, in connect_container_to_network
traefik-network-connector-1 | self._raise_for_status(res)
traefik-network-connector-1 | File "/usr/local/lib/python3.12/site-packages/docker/api/client.py", line 277, in _raise_for_status
traefik-network-connector-1 | raise create_api_error_from_http_exception(e) from e
traefik-network-connector-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
traefik-network-connector-1 | File "/usr/local/lib/python3.12/site-packages/docker/errors.py", line 39, in create_api_error_from_http_exception
traefik-network-connector-1 | raise cls(e, response=response, explanation=explanation) from e
traefik-network-connector-1 | docker.errors.APIError: 400 Client Error for http+docker://localhost/v1.51/networks/f4ffcd7cc1b2ef6018dbc60321d3823529c5ad2bca84023d1d55fee6b8b47a65/connect: Bad Request ("cannot connect container to host network - container must be created in host network mode")
traefik-network-connector-1 exited with code 1
As a fix for now I will just use another monitoredLabel, but if you are using a lot of containers, it might be easier to just ignore this?
Heres the relevant part of my setup:
services:
traefik:
image: traefik:v3
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik:/traefik
extra_hosts:
- host.docker.internal:172.16.0.1
traefik-network-connector:
image: obeoneorg/traefik_network_connector
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
node-exporter:
image: prom/node-exporter
restart: always
command:
- --path.rootfs=/host
volumes:
- /:/host:ro,rslave
pid: host
network_mode: host
labels:
traefik.enable: "true"
traefik.http.routers.node-exporter.entrypoints: "https"
traefik.http.routers.node-exporter.rule: "Host(`<a_hostname>`)"
traefik.http.services.node-exporter-system.loadbalancer.server.port: "9100"
I'm running a container (node-exporter) in network mode
hostand connect ist with theextra_hostsoption to traefik. However the connector tries to connect the host network to traefk, which fails and makes it crash:As a fix for now I will just use another
monitoredLabel, but if you are using a lot of containers, it might be easier to just ignore this?Heres the relevant part of my setup: