Skip to main content
EXPOSE instruction should not define an IP address or host-port mapping.
PropertyValue
SeverityWarning
CategoryCorrectness
DefaultEnabled

Description

The EXPOSE instruction in a Dockerfile is used to indicate which ports the container listens on at runtime. It should not include an IP address or host-port mapping. Including an IP address or host-port mapping in the EXPOSE instruction does not actually publish the port and can be misleading. Use docker run -p or docker compose port mappings to bind host ports at runtime.

Examples

Bad:
FROM alpine
EXPOSE 127.0.0.1:80:80
Good:
FROM alpine
EXPOSE 80
Bad:
FROM alpine
EXPOSE 80:80
Good:
FROM alpine
EXPOSE 80

Reference