简体   繁体   中英

Java Spring Boot Random Port with Dockerfile

If you're using Java Spring Boot, you can set the server port the application runs on to any port, but also to a random port:

server:
  port: 0

However, when I now use a Dockerfile for my application, I won't know what port to EXPOSE . Is there any way to find this port?

  1. Don't use a random port for the Spring app. Use the default port and have Docker expose that as whatever port you like.
  2. Don't use a random port for the Spring app. Specify it via an environment variable and have Docker provide that.

when you started an app, you can see at console I think. As I know docker use 8080 or 8081.

EDIT 1: Check this -> link

You can expose a port through your Dockerfile or use --expose and then publish it with the -P flag. This will bind the exposed port to your Docker host on a random port (verified by running docker container ls).

You can expose a port through your Dockerfile or use --expose and then publish it with the -p 80:80 flag. This will bind the exposed port to your Docker host on port 80, and it expects the exposed port is 80 too (adjust as necessary with HOST:CONTAINER).

You can ignore exposing anything and just use -p 80:80 in which case this doubles as both exposing AND publishing the port.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM