With the EXPOSE keyword, we are not actually publishing the container port that we specify here; instead, we are creating a guideline for the container's user to know which ports to publish when they start the container.
Therefore, this is only metadata that is again created in the image's manifest, which can later be retrieved with docker inspect. No additional layers are created with this keyword.
Ports defined in the EXPOSE instruction can be either user datagram protocol (UDP) or transmission control protocol (TCP), but, by default, TCP is assumed if no protocol is specified.
Here are some examples of the EXPOSE instruction:
EXPOSE 80
EXPOSE 53/udp
EXPOSE 80/tcp