Agregar o eliminar un puerto publicado
En este paso, aprenderá cómo agregar o eliminar un puerto publicado para un servicio de Docker. Publicar un puerto hace que un puerto dentro del contenedor sea accesible desde fuera del clúster de Docker Swarm. Esto es esencial para exponer su aplicación a usuarios u otros servicios.
Nuestro servicio actual my-service
no tiene ningún puerto publicado porque simplemente ejecuta un simple comando echo
y finaliza. Para demostrar cómo publicar puertos, creemos un nuevo servicio que ejecute un simple servidor web. Utilizaremos la imagen nginx
para esto.
Primero, descargue la imagen nginx
:
docker pull nginx
Ahora, creemos un nuevo servicio llamado web-service
y publiquemos el puerto 80 del contenedor al puerto 8080 en el host.
docker service create --name web-service --publish 8080:80 nginx
Este comando crea un servicio llamado web-service
utilizando la imagen nginx
. La opción --publish 8080:80
mapea el puerto 80 dentro del contenedor al puerto 8080 en el host.
Debería ver una salida que indique el ID del servicio.
Para verificar que el puerto está publicado, puede inspeccionar el servicio:
docker service inspect web-service
Busque la sección EndpointSpec
en la salida. Debería ver una entrada bajo Ports
que muestre el mapeo del puerto publicado (por ejemplo, PublishedPort: 8080
, TargetPort: 80
).
Ahora, eliminemos el puerto publicado del servicio web-service
. Podemos hacer esto utilizando el comando docker service update
con la opción --publish-rm
, especificando el puerto objetivo dentro del contenedor.
docker service update --publish-rm 80 web-service
Este comando elimina el mapeo del puerto 80 dentro del contenedor.
Debería ver una salida que indique que el servicio se ha actualizado.
Para verificar que el puerto se ha eliminado, inspeccione el servicio nuevamente:
docker service inspect web-service
La sección EndpointSpec
ya no debería mostrar el mapeo de puerto que acaba de eliminar.