La instrucción EXPOSE expone un puerto particular con un protocolo específico dentro de un Docker Container. En el término más simple, la instrucción EXPOSE le dice a Docker que obtenga toda la información requerida durante el tiempo de ejecución desde un puerto específico. Estos puertos pueden ser TCP o UDP, pero es TCP por defecto. También es importante comprender que la instrucción EXPOSE solo actúa como una plataforma de información (como la documentación) entre el creador de la imagen de Docker y la persona que ejecuta el contenedor. Algunos puntos a tener en cuenta son:
- Puede usar el protocolo TCP o UDP para exponer el puerto.
- El protocolo predeterminado es TCP si no se especifica ningún otro protocolo.
- No asigna puertos en la máquina host.
- Se puede anular usando el indicador de publicación ( -p ) al iniciar un contenedor.
La sintaxis para EXPONER los puertos especificando un protocolo es:
Syntax: EXPOSE <port>/<protocol>
En este artículo, vamos a discutir algunos ejemplos prácticos de cómo usar la instrucción EXPOSE en su Dockerfile y anularlo usando el indicador de publicación al iniciar un Docker Container.
Siga los pasos a continuación para implementar la instrucción EXPOSE en un contenedor acoplable:
Paso 1: Cree un Dockerfile con la instrucción EXPOSE
Vamos a crear un Dockerfile con dos instrucciones EXPOSE, una con protocolo TCP y otra con protocolo UDP.
FROM ubuntu:latest EXPOSE 80/tcp EXPOSE 80/udp
Paso 2: crea la imagen de Docker
Para construir la imagen de Docker usando el Dockerfile anterior, puede usar el comando Docker Build.
sudo docker build -t expose-demo .
Paso 3: ejecutar el contenedor Docker
Para ejecutar Docker Container, puede usar el comando de ejecución de Docker.
sudo docker run -it expose-demo bash
Paso 4: verificar los puertos
Para verificar los puertos expuestos, puede usar el comando de inspección de Docker.
sudo docker image inspect --format='' expose-demo
En la captura de pantalla anterior, puede ver que el objeto ExposedPorts contiene dos puertos expuestos que hemos especificado en el Dockerfile .
Paso 5: Publicación de los puertos
Para publicar todos los puertos expuestos, puede usar el indicador -p .
sudo docker run -P -d expose-demo
Paso 6: Comprobación de los puertos publicados
Puede simplemente enumerar los contenedores para verificar los puertos publicados usando el siguiente comando. Pero asegúrese de que el contenedor se esté ejecutando.
sudo docker start <container-id> sudo docker container ls
Para concluir, en este artículo, discutimos cómo usar la instrucción EXPOSE dentro de un Dockerfile para exponer los puertos de un Contenedor usando un protocolo específico y usar el indicador -p para publicar los puertos.