Skip to main content

Networks

När det gäller docker-nätverk så kan man dela upp dem i två kategorier:

  1. De som måste vara publikt nåbara (external)
  2. De som inte måste vara publikt nåbara (internal)

Exempelvis databaser behöver inte vara publikt nåbara om de enbart ska serva containern i fråga. Då kan de klassas som internal. Det är också en fördel att ha ex. postgresdatabaser på interna nätverk, då om man har flera databaser externt nåbara kommer andra containrar som använder sig av postgres att försöka använda en annan en sin egen postgrescontainer. Webbsidor som körs på samma docker-host som en reverse proxy behöver inte heller vara extern nåbara, det räcker att reverse proxyn når containern.

Här är ett docker-compose exempel på hur det kan se ut. Notera att webservern web_recipes har två nätverk tilldelade, både det interna och det externa. Nätverket TANDOOR_INTERNAL skapas automatiskt när containrarna skapas. Nätverket DOCKER_NETWORKS är ett externt skapat nätverk, det har alltså skapats långt innan den här compose-filen skapades:

services:
  db_recipes:
    networks:
      TANDOOR_INTERNAL:

  web_recipes:
    depends_on:
      - db_recipes
    networks:
      DOCKER_NETWORK:
        ipv4_address: 10.10.0.36
      TANDOOR_INTERNAL:

networks:
  DOCKER_NETWORK:
    name: DOCKER_NETWORK
    external: true
  TANDOOR_INTERNAL:
    name: TANDOOR_INTERNAL
    driver: bridge
    internal: true