Mi primer contenedor de aplicación Docker

Este artículo presenta el proceso de creación de mi primer contenedor de aplicación doccker

Consulte principalmente la aplicación de muestra del tutorial oficial , que también encontró preguntas confusas y encontró la respuesta a través de Internet, pero el tutorial oficial no lo mencionó.

Instalar ventana acoplable

Instalé Docker: en Windows 10. No sé qué tutorial he leído. Instalé boot2doker primero, pero no funcionó. Más tarde, es un método desactualizado, simplemente instálelo directamente. El tutorial oficial docker estudiando allí en

Enlace

O descargue directamente la versión de Windows 10. Hay un dicho que dice que la versión de Windows solo puede ser la versión Pro de Windows, y otras versiones deben ser diferentes. No veo esta declaración aquí, pero yo soy la versión Pro de Windows.

 

Cómo se ve la aplicación de muestra

Ingrese localhost: 8080 en el navegador local para tener las siguientes aplicaciones:

Ingrese el contenido en Agregar elemento, luego haga clic en el botón, agregue una línea de contenido a continuación y elimine un punto rojo en el lado derecho de la línea

 Esta aplicación usa node.js. No importa si no entiende el texto original, no lo entiendo.

Obtener la aplicación

Primero descargue el archivo de compresión de código  para obtener un archivo app.zip y luego descomprímalo para obtener un directorio de aplicaciones.

El contenido de la aplicación es: hay 2 archivos y 2 directorios debajo de la aplicación.

En el texto original, se dice que puedes abrir y editar con tu ide favorito, de hecho, esta parte solo necesita editar un archivo de texto.

Lo siguiente es lo que ve cuando lo abre con Visual Studio Code, donde se abre package.json

Puede usar dir o el administrador de archivos para ver la estructura del directorio. No importa si no ves.

Crear imagen de contenedor de aplicación

Para construir la aplicación, se requiere un Dockerfile. Dockerfile es solo un script de instrucciones basado en texto que se usa para crear imágenes de contenedor. 

Cree un archivo Dokerfile. Tenga en cuenta que no puede haber extensión al final. Si edita con el Bloc de notas, le agregará una extensión txt. En caso de esto, cambie el nombre a ren y elimine la extensión.

El contenido del archivo es:

 FROM node:12-alpine
 WORKDIR /app
 COPY . .
 RUN yarn install --production
 CMD ["node", "src/index.js"]

Una vez creado el Dockerfile, puede editar y crear la imagen del contenedor. El comando es:

 docker build -t getting-started .

Este comando usa un Dockerfile para construir una nueva imagen de contenedor. Es posible que haya notado que se descargan muchas "capas". Esto se debe a que le indicamos al constructor que comenzara con el nodo: imagen alpina 12. Sin embargo, dado que la imagen no está disponible en nuestra computadora, necesitamos descargar la imagen.

Después de descargar la imagen, la copiamos en la aplicación e instalamos las dependencias de la aplicación usando yarn. La directiva CMD especifica el comando predeterminado que se ejecutará cuando el contenedor se inicie desde esta imagen.

Finalmente, -t marca nuestro nombre de imagen. Simplemente puede pensar en él como un nombre fácil de entender para la imagen final. Dado que llamamos a la imagen inicio-inicio, podemos referirnos a la Imagen cuando ejecutamos el contenedor.

Tenga en cuenta que. Después de la línea de comandos significa el directorio actual. El contenido al final del comando de compilación de Docker le dice a Docker que debe buscar el Dockerfile en el directorio actual.

Inicie el contenedor de la aplicación

Ejecute el siguiente comando para iniciar el contenedor de la aplicación:

 docker run -dp 3000:3000 getting-started

¿Recuerda las banderas -d y -p? Estamos ejecutando el nuevo contenedor en modo "separado" (en segundo plano) y creando un mapeo desde el puerto 3000 del host al puerto 3000 del contenedor. Si no hay mapeo de puertos, no podremos acceder a la aplicación. 

Tengo un problema con este comando, el mensaje de error es el siguiente:

C:\download\dockerapp> docker run -dp 3000:3000 getting-started
a13defcc0b4f65ddfb8290ee0493ef5c59a7530cf11f75fb8349313069acc4bc
docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:3000: bind: An attempt was made to access a socket in a way forbidden by its access permissions.


Más tarde, busqué una solución en Internet. Estuve atrapado aquí durante 2 días. Vi a una persona que dijo que revisara la información prohibida del puerto local:

interfaz netsh ipv4 show

Mi mensaje es:

C:\download\dockerapp>netsh interface ipv4 show excludedportrange protocol=tcp

协议 tcp 端口排除范围

开始端口    结束端口
----------    --------
      1692        1791
      1792        1891
      1892        1991
      1992        2091
      2180        2279
      2480        2579
      2580        2679
      2790        2889
      2890        2989
      2990        3089
      3090        3189
      3190        3289
      3490        3589
      3590        3689
      4014        4113
      4114        4213
      4363        4462
      4499        4598
      5275        5374
      5375        5474
     50000       50059     *

* - 管理的端口排除。

De hecho, el puerto está prohibido, dado que el puerto está prohibido, utilice un puerto que no esté prohibido.

Eso pensé, así que usé el siguiente comando;

 docker run -dp 8080: 3000 introducción

Esta vez no hay ningún mensaje de error, puede ver que los comandos y mensajes son los siguientes:

C:\download\dockerapp> docker run -dp 8080:3000 getting-started
b461fd95b2211a463baabd89faba93ab9e0fe31b91d336f972f36e2f9c589dc8

Luego escribo en el navegador:

localhost: 8080

Obtenga el resultado de iniciar esa aplicación.

: El anverso es el número de puerto local y el reverso es el número de puerto del contenedor, por lo que se realiza la asignación de puertos.

Supongo que te gusta

Origin blog.csdn.net/leon_zeng0/article/details/113832779
Recomendado
Clasificación