В вашем коде сервер прослушивает ПОРТ 3000, и вы выставили ПОРТ 80 на ХОСТ, что означает, что ПОРТ 80 не имеет ничего общего с работой в док-контейнере, вам на самом деле нужно ПОЛУЧИТЬ ПОРТ 3000 из док-контейнера и использовать его.
Вы можете использовать эту команду для сопоставления с портом, используемым на хосте, где номер порта до: представляет порт, который должен быть отображен на хосте, и номер порта после: представляет порт в контейнере докера, который открыт AFAIK.
docker run -p 80:80