Docker Container/Service with Same Port: Best Practices? - eviltoast

I am very new to using docker. I have been used to using dedicated VM’s and hosting the applications within the servers OS.

When hosting multiple applications/services that require the same port, is it best practice to spin up a whole new docker server or how should I go about the conflicts?

Ie. Hosting multiple web applications that utilize 443.

Thank you!

  • EliteCow@lemmy.dbzer0.comOP
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    In addition to Caddy being apart of the reverse_proxy network. Would I also have to add it to the Bridge network so that I can utilize the machine IP that docker is hosted on for port forwarding 443?

    • herrfrutti@lemmy.world
      link
      fedilink
      English
      arrow-up
      5
      ·
      1 year ago

      Caddy would have the bridge proxy network and the port 443 exposed.

      version: "3.7"
      
      networks:
        proxy-network:
          external: true
      # needs to be created manually bevor running (docker create network proxy-network)
      services:
        caddy:
          image: caddy
          container_name: caddy
          restart: unless-stopped
          ports:
            - 80:80
            - 443:443
          volumes:
            - ./data:/data
            - ./config:/config
            - ./Caddyfile:/etc/caddy/Caddyfile:ro
          networks:
            - proxy-network
      

      Other services:

      version: "3.7"
      
      networks:
        proxy-network:
          external: true
      
      services:
        app:
          image: app
          container_name: app
          restart: unless-stopped
          volumes:
            - ./app-data:/data
          networks:
            - proxy-network
      

      Caddy can now talk to the app with the apps container_name.

      Caddyfile:

      homepage.domain.de {
          reverse_proxy app:80
      }
      

      So the reverse proxy network is an extra network only for containers that need to be exposed.