Acoplable concepto difícil de entender? Artículo conseguir la unión del estibador del puerto


Autor | Dieter Jordens

Traductor | Unión Soviética como este, Zebian | Yugao

Exposición |  RDCC (ID: CSDNnews)

La siguiente es la traducción:

            

A medida que su principal desarrollador, no está participado en esta entrevista, durante la entrevista, el entrevistador esperanza de contestar funciona con precisión acoplable de? Hoy entrevistador candidatos que aspiran a obtener detalles del informe 8, 10, o incluso más técnico. De hecho, es un poco loco. En una universidad u otra escuela, es probable que no te enseñan nada acerca de Docker. Sin embargo, si realmente entiende acoplable, a continuación, puede destacarse de la multitud de candidatos en el.

Cuando empiece a usar estibador, uno de los primeros problemas que se plantean es que no se puede conectar a los contenedores de Docker. En este artículo se explicará en detalle la cuestión de por qué sucedió, y yo le explicará el enlace de puerto (enlace de puerto) es cómo funciona.

Incluso si usted es un desarrollador con experiencia, usted debe entender lo que es la unión del puerto. De lo contrario, se verá tonto en la entrevista. Si usted no entiende, por lo que ahora me entrego a tomar una taza de café. Voy a dejar de poner todo lo que quieres saber sobre este tema se registran en su mente, sólo tiene que pasar seis minutos!

Empecemos con un contenedor Nginx acoplable él!

Si usted tiene un poco de conocimiento del estibador, usted no tiene que preocuparse acerca. Porque voy a tratar de explicar todo en detalle acerca del estibador. En primer lugar, tengo que asegurarse de que entiende la diferencia entre el recipiente del estibador acoplable y espejo.

Puede Döcker imagen como un archivo que contiene todas las dependencias y configuración para ejecutar un programa en particular. ¿Por qué hacer esto? Debido acoplable quieren resolver el primer problema es la pesadilla del sistema / instalación.

Tenemos experimentado situaciones de instalación en los sistemas Windows, Mac o Linux. Sin embargo frustrante es que cada vez que el sistema le pedirá la falta de otro programa. Al igual que el sistema siguiendo las indicaciones y cuando no se desea instalar, y supongo que cada vez que se encuentra con este problema será elegir instalar, ¿verdad?

Usted tiene que instalar este programa de tareas? ...

Con el tiempo usted encontrará que usted no sólo tiene que instalar una gran cantidad de diferentes programas, pero a menudo también es necesario configurar las variables del sistema, y ​​así sucesivamente. En el peor de los casos, estos serían hacer un lío de su sistema.

Por cierto, no quiere que en las experiencias de organización de todo el mundo este tipo de problemas, ¿verdad?

espejo acoplable puede ayudar a solucionar este problema, porque la imagen de una ventana acoplable contiene todo lo necesario para instalar el programa. Mientras que el recipiente se está ejecutando ejemplo acoplable acoplable de reflejo.

Ventana acoplable para usted para resolver la pesadilla de la instalación. El envase acoplable contiene todo lo necesario para ejecutarlo, ni más ni menos. Se puede ejecutar un Docker contenedores en Windows, Linux o Mac. Básicamente, si usted Döcker instalado, puede ejecutarlo desde cualquier lugar.

Sobre las ventajas de Docker ha puesto más que suficiente. A continuación, tenemos que hacer es hacer un envase acoplable empezar a correr.

Vamos a empezar con unos contenedores Nginx acoplables. Nginx se está ejecutando un servidor web en el puerto 80. Aquí, voy a utilizar la imagen Nginx estibador en modo dividido (fondo) acoplable iniciar un contenedor, el siguiente comando:

docker container run -d nginx

Este comando generará una nueva contenedores Docker, verá el nuevo contenedor UUID del estibador. Si usted no sabe lo que UUID es así, entonces lea lo que escribí este artículo para todo el contenido. Acoplable contenedores utilizando comando ps (ps ventana acoplable), verá este contenedor ventana acoplable está activo:

             

Ahora, si se intenta utilizar el rizo de comandos o utilizar un navegador para conectarse directamente al recipiente del estibador, se encontrará con un fallo de conexión de error (ver más abajo). Porque no se puede conectar directamente a un recipiente acoplable, porque lo que es? acoplable documento que acabamos de explicar que el puerto 80 es vulnerable ... esta explicación poco clara. Pero no se preocupe, voy a dar una explicación detallada en la siguiente sección!

curl -I 127.0.0.1:80
curl: (7) Failed to connect to 127.0.0.1 port 80: Connection refused

¿Por qué no puedo conectar directamente a un recipiente estibador?

De hecho, los contenedores acoplables pueden conectarse con el mundo exterior sin ninguna configuración. Esto es bueno, ya que no tiene que cambiar nada que teníamos antes de la programación.

Pero por defecto, el mundo exterior no se puede conectar directamente a un contenedor del estibador.

Una vez dicho esto, creo que usted debe entender, y que esperaba que diferente. Entonces, ¿cómo debe conectar a su contenedor acoplable que? Bueno, hay una gran variedad de opciones. Vamos a explorar.

1. acoplable abrir todos los puertos

docker container run -P -d nginx

Aquí comando -P para cada puerto para abrir el contenedor revelada. Acoplable será identificado en Dockerfile cada divulgación puerto, y el uso de cada puerto --expose acoplable recipiente comando de generación con los parámetros dados a conocer. Cada puerto abierto directamente enlazado a un puerto "aleatorio" del huésped.

Suena bien, pero ¿cómo podemos encontrar estos puertos que? No se preocupe, vamos a encontrar el puerto querido, e incluso una variedad de maneras para ayudar a encontrar ellos. A continuación, te voy a mostrar dos formas diferentes:

  • puerto de contenedores acoplable

  • netstat

Nuestra primera opción es utilizar el comando anterior estibador (estibador portuario de contenedores). Sólo tiene que escribir el comando anterior y el contenedor UUID. Verá acoplable puerto de contenedores 80 se une a la dirección IP del puerto de host 32768 0.0.0.0 (si se intenta ejecutar este comando, verá un puerto diferente).

docker container port *insert container_uuid*
80/tcp -> 0.0.0.0:32768

Nuestra otra opción es utilizar el comando netstat. Para encontrar todos los puertos abiertos, puede ejecutar el siguiente comando. Tenga en cuenta que el puerto del estibador abierta combinada en los otros puertos, los puertos en este caso la tercera fila es lo que estamos buscando.

netstat -ntlp

     

       

Todos los puertos abiertos utilizando el comando netstat para encontrar.

2. abrir un puerto específico

             

Ejemplo puerto de unión: Encuadernación acoplable puerto de contenedores 80 al puerto 8080 del huésped.

Acoplable abrir todos los puertos por lo general no son una buena idea, por defecto, simplemente no se abre ningún puerto, esto es por razones de seguridad. Usted no quiere revelar todo, porque no tiene ningún beneficio, ¿verdad?

Si desea abrir un puerto, ejecute el siguiente comando:

docker container run -p 8080:80 -d nginx

Este comando hace que Nginx puerto de contenedores 80 a través del puerto de host 8080 abierto al público. Ahora, podemos estar conectado al recipiente a través de una variedad de maneras. Por ejemplo, el uso de comando curl o por medio de un navegador. Esto no es muy grande!

Enhorabuena, ya que finalmente entender la parte más importante puerto del estibador obligado! Ahora te voy a mostrar los resultados de la ejecución del comando rizo:

curl -I 0.0.0.0:8080HTTP/1.1 200 OK
Server: nginx/1.17.9
Date: Sun, 08 Mar 2020 11:38:47 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 03 Mar 2020 14:32:47 GMT
Connection: keep-alive
ETag: "5e5e6a8f-264"
Accept-Ranges: bytes

Si visita esta dirección en su navegador: 0.0.0.0: 8080, su navegador le mostrará el siguiente contenido:

             

0.0.0.0:8080 conectada a la caja a través de un navegador.

Una cosa más

Por defecto, los puertos de contenedores acoplables serán revelados a la dirección de IP 0.0.0.0 (cualquier dirección IP en el sistema y el partido) en. También se puede saber qué IP para enlazar estibador, esta IP 127.0.0.1 puede ser, también puede ser una dirección IP diferente.

Si desea enlazar acoplable puerto de contenedores 80 al puerto 8000 del sistema host y la dirección IP 127.0.0.1 (también conocido como anfitrión local), sólo tiene que ejecutar el siguiente comando:

docker run -d -p 127.0.0.1:8000:80 nginx

conclusión

Para recipientes estibador, el estibador enlace de puerto es un concepto muy importante. Puede iniciar debido a la configuración de temas necesitan conexiones entrantes (conexión de entrada), y ser confuso. Pero estibador en términos de proporcionar todos los documentos necesarios para hacer un trabajo bueno.

Sin embargo, como desarrollador, el concepto de estibador que es más difícil de entender que algunos otros conceptos. Con suerte, la lectura de este artículo, usted ha sido muy claro estibador del puerto obligado. Si no es así, por favor deje un comentario más abajo!

fuente original:

https://medium.com/better-programming/how-does-docker-port-binding-work-b089f23ca4c8

Este artículo es una traducción del artículo CSDN, por favor indique la fuente.

【Final】

lectura recomendada 

Apple ha abandonado o publicado en marzo barato nuevo iPhone; grandes demandas Jia Yueting familia responden; Microsoft ya no continúan desarrollando Visual Basic | titulares Geeks

US $ 7.558 billón trato! mayor subasta de espectro de ondas milimétricas 5G de Estados Unidos

super ligero chino OCR, el apoyo para el reconocimiento de texto vertical, el razonamiento ncnn, el modelo total sólo 17M

y los hackers luchan seis días!

artículo para la monitorización de Primavera inicio de servicio, controles de salud, la información de temas, información de almacenamiento dinámico de JVM, colección métricas, supervisar el funcionamiento!

con "paloma" 3, le indica cómo cambiar la red rayo está cifrada modo de mensajería!

Nos fijamos en cada punto, en serio como favorito

Liberadas 1838 artículos originales · ganado elogios 40000 + · Vistas 16,590,000 +

Supongo que te gusta

Origin blog.csdn.net/csdnnews/article/details/104912592
Recomendado
Clasificación