What’s running on port 8080 on my Mac?
8080 is the classic “alternate HTTP” port, so everything from Java servers to webpack to random Docker images defaults to it. lsof tells you which one won.
Updated
Commonly used by
- Spring Boot / TomcatEmbedded Tomcat listens on 8080 unless
server.portsays otherwise. - Jenkins
brew services start jenkins-ltsserves the UI on 8080. - webpack-dev-server / Vue CLI
webpack serveandvue-cli-service servestart on 8080. - http-server / Eleventy
npx http-serverandnpx @11ty/eleventy --serveboth use 8080. - Docker imagesMany web images expose 8080; a published one shows as
com.docker.backend.
Check what’s on port 8080
lsof -nP -iTCP:8080 -sTCP:LISTEN
ps -o pid,etime,command -p <PID>
COMMAND | Likely |
|---|---|
java | Spring Boot, Tomcat, Jenkins (the command line names the jar) |
node | webpack-dev-server, Vue CLI, http-server, Eleventy |
com.docker.backend / OrbStack | A container: docker ps --filter publish=8080 |
With Stat Space: statspace port 8080.
Free it
- Terminal or IDE run: Ctrl-C, or
kill <PID>. A Spring Boot app started from IntelliJ keeps running if you close the run tab without pressing Stop. - Jenkins via Homebrew:
brew services stop jenkins-lts. - Docker:
docker stop <name>, notkill, sincecom.docker.backendserves every container.
Change the port
| Tool | How |
|---|---|
| Spring Boot | server.port=8081, or --server.port=8081 |
| Tomcat (standalone) | port="8081" on the HTTP <Connector> in conf/server.xml |
| Jenkins | --httpPort=8081 (Homebrew: edit the plist’s arguments) |
| webpack-dev-server | devServer: { port: 8081 } or webpack serve --port 8081 |
| Vue CLI | vue-cli-service serve --port 8081 |
| http-server | npx http-server -p 8081 |
| Eleventy | npx @11ty/eleventy --serve --port=8081 |
Watch for 8081 if you also do React Native: Metro lives there.
Who can reach it
Java servers bind to all interfaces by default, so a Spring Boot app with Actuator endpoints or a Jenkins with a weak admin password is reachable by everyone on the network. npx http-server also listens on all addresses and serves the whole folder. Use server.address=127.0.0.1 for Spring, -a 127.0.0.1 for http-server, and -p 127.0.0.1:8080:8080 for Docker. See dev server exposed to the network.
Seeing it live
Stat Space shows 8080 with the process, project folder and launcher behind it, and flags *:8080. With Pro, Docker-published 8080s show the container and image instead of com.docker.backend.
Questions
How do I change the port in Spring Boot?
Set server.port=8081 in application.properties (or server: port: 8081 in YAML), or run with --server.port=8081. SERVER_PORT=8081 as an environment variable works too.
Why is port 8080 in use when nothing is running?
Something is, it just isn't in a terminal: a Homebrew service like Jenkins, a background IntelliJ run, or a Docker container. lsof -nP -iTCP:8080 -sTCP:LISTEN shows which.
What's the difference between 8080 and 80?
80 is the standard HTTP port and needs elevated privileges on many systems. 8080 is an unprivileged stand-in, which is why dev servers and Java apps default to it.
Know what your Mac is doing, without adding to it.
Free, no account. Pro is $9.99 once for the first 100 buyers.