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!

  • @herrfrutti
    link
    English
    51 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.