Docker: gestión de puertos
En Docker, los propios contenedores pueden tener aplicaciones ejecutándose en puertos. Cuando ejecuta un contenedor, si desea acceder a la aplicación en el contenedor a través de un número de puerto, debe asignar el número de puerto del contenedor al número de puerto del host de Docker. Veamos un ejemplo de cómo se puede lograr esto.
En nuestro ejemplo, vamos a descargar el contenedor Jenkins de Docker Hub. Luego, asignaremos el número de puerto de Jenkins al número de puerto en el host de Docker.
Step 1 - En primer lugar, debe realizar un registro simple en Docker Hub.
Step 2 - Una vez que se haya registrado, iniciará sesión en Docker Hub.
Step 3 - A continuación, busquemos y busquemos la imagen de Jenkins.
Step 4 - Si se desplaza hacia abajo en la misma página, puede ver el Docker pullmando. Esto se utilizará para descargar la imagen de Jenkins en el servidor Ubuntu local.
Step 5 - Ahora ve al servidor de Ubuntu y ejecuta el comando -
sudo docker pull jenkins
Step 6 - Para comprender qué puertos están expuestos por el contenedor, debe usar el Docker inspect command para inspeccionar la imagen.
Aprendamos ahora más sobre esto inspect mando.
Docker inspeccionar
Este método permite devolver información de bajo nivel sobre el contenedor o la imagen.
Sintaxis
docker inspect Container/Image
Opciones
Container/Image - El contenedor o imagen a inspeccionar
Valor devuelto
La información de bajo nivel de la imagen o contenedor en formato JSON.
Ejemplo
sudo docker inspect jenkins
Salida
La salida del inspectcomando da una salida JSON. Si observamos la salida, podemos ver que hay una sección de "ExposedPorts" y vemos que hay dos puertos mencionados. Uno es eldata port de 8080 y el otro es el control port de 50000.
Para ejecutar Jenkins y mapear los puertos, debe cambiar el Docker runcomando y agregue la opción 'p' que especifica la asignación de puertos. Por lo tanto, debe ejecutar el siguiente comando:
sudo docker run -p 8080:8080 -p 50000:50000 jenkins
El lado izquierdo de la asignación del número de puerto es el puerto de host de Docker al que se debe asignar y el lado derecho es el número de puerto del contenedor de Docker.
Cuando abra el navegador y navegue hasta el host de Docker en el puerto 8080, verá Jenkins en funcionamiento.