Skip to content

Ignore host network #13

@samuel-p

Description

@samuel-p

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"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions