Похоже, что по крайней мере две вещи неправильны:
- Вам необходимо сопоставить порт с хостом докера
- Вам необходимо привязать свой сервер к 0.0.0.0
Итак, вероятно, эти изменения (не проверены):
В вашем коде:
www.listen(8080, "0.0.0.0");
В вашей команде докера:
docker run nsj -p 8080:8080
Обратите внимание, чтоналичие EXPOSE 8080
в вашем Dockerfile
фактически ничего не раскрывает. Он просто «помечает» этот порт в метаданных механизма докера и предназначен как для документации (чтобы люди, читающие Dockerfile
, знали, что она делает), так и для инструментов, которые проверяют механизм докера.
Цитировать из reference :
Команда EXPOSE фактически не публикует порт. Он функционирует как тип документации между человеком, который создает образ, и человеком, который запускает контейнер, о том, какие порты предназначены для публикации