¿En qué proyecto simple puedo trabajar para tener una experiencia práctica en Docker?

Esa es la belleza de Docker: realmente cualquier cosa puede funcionar. Si desea algo de experiencia que se mantenga, en lugar de recorrer los Docker Docs y todos simples, sugiero lo siguiente:

a) Elija un proyecto en el que esté trabajando actualmente o tenga

Entonces, supongamos que tiene una aplicación que es una aplicación web de reacción. Utiliza nodo, hilo, etc. Y todo está en su máquina local.

b) Cree una imagen de Docker que pueda actuar como su entorno de desarrollo en lugar de usar dependencias en su máquina local

Entonces, en este caso, crearía un Dockerfile con algo realmente simple como:

DESDE nodo: 6.9.4

EJECUTAR npm install -g

WORKDIR / usr / src / app

Lo que en este caso dice, construya una imagen a partir de la imagen oficial del Nodo y cada vez que se ejecute, dentro de ella, use “/ usr / src / app” como el directorio de trabajo.

Construye tu imagen con algo como

$ docker build -t nombre-de-tu-directorio de imágenes / ofDockerFile /

Donde nombre de su imagen es, bueno, el nombre de su imagen. El directorio de su dockerfile debería ser solo eso: el directorio que contiene el Dockerfile.

c) Usa la imagen de desarrollo

El objetivo aquí es usar la versión Node dentro del archivo / contenedor Docker en lugar de usar las de su máquina local.

Supongamos que tiene una “aplicación” de directorio y dentro está todo su código. La forma en que luego ejecutaría su código local sería “montar” su código local en una instancia de su Docker Image (un contenedor). Piense en montar como insertar un CD-ROM en una computadora, donde el CD-ROM es su carpeta local y el contenedor es como la computadora que ejecutará el CD-ROM. Cuando esta computadora guarda los cambios en el CD, y lo elimina, los cambios seguirán allí.

La forma en que haría esto es, dentro de su directorio de “aplicaciones”, ejecutar algo como

$ docker run -p 3000: 3000 -it -v $ (pwd): / usr / src / app –rm name-of-your-built-image bash

Para hablar de ello

a) `docker run` – esto crea un contenedor de su imagen

b) `-p 3000: 3000` – suponiendo que su aplicación escuche en localhost 3000, necesitaría asignar el puerto 3000 de su contenedor al puerto 3000 de su máquina local.

c) `-it`: esto ejecuta su contenedor en modo interactivo, de modo que realmente podrá estar dentro de él y trabajar con bash

d) `—rm` – esto eliminará el contenedor una vez que salga de él

e) `-v $ (pwd): / usr / src / app` – esto monta su directorio de trabajo actual, en este caso su directorio de” aplicación “, en el directorio de trabajo dentro de su contenedor de nodo

f) `nombre-de-su-imagen-construida` – autoexplicativo

g) `bash`: esto le dice a Docker que ejecute el comando bash, que le permitirá navegar dentro de su contenedor una vez que esté en funcionamiento

Una vez que se ejecute este comando, se mostrará una interfaz de línea de comando que está EN su contenedor, pero tiene acceso a los archivos de la carpeta de la aplicación local. De hecho si haces un

$ ls

Verás que todos los archivos están ahí

A partir de ahí, también puede ejecutar su aplicación, suponiendo que su única dependencia global sea Node. Si su proyecto tiene dependencias locales (node_modules), esas estarán allí. Entonces el siguiente paso sería:

nodo.

O cualquiera que sea el comando de inicio de tu aplicación. En este punto, su aplicación se activará, estará en vivo en localhost: 3000 y aún podrá editar y trabajar con los archivos normalmente.

Lo anterior es obviamente muy simplificado, pero el punto es este:

Toma un proyecto. Dockerizarlo.


Tengo un tutorial sobre el uso de docker y docker-compose en aplicaciones de estilo de reacción que podrían ayudar aquí:

Sin expulsión: cree una aplicación React con SASS, Storybook y Yarn en un entorno Docker

Eso crea una aplicación de reacción a partir de imágenes y contenedores de la ventana acoplable.

Puede crear una aplicación web simple, luego intentar construir la imagen y ejecutar el contenedor. Puede agregar el contenedor mysql y vincular el contenedor de la aplicación web al contenedor mysql.
Creo que te ayudará a comprender el uso básico de Docker.

More Interesting

Cómo seguir siendo competente en múltiples lenguajes y tecnologías de programación si su trabajo solo requiere uno

¿Cuáles son las consideraciones clave antes de seleccionar una empresa de desarrollo de software?

¿Qué tan difícil es obtener una visa H-1B después de completar MS en CS en los Estados Unidos?

¿Qué opinas sobre Google Code Jam distribuido?

¿Cuál es una mejor carrera, ingeniero de software / desarrollador o agente de bienes raíces / desarrollador?

¿Algún buen consejo para mi primer trabajo y días como desarrollador de software Junior?

¿Qué conocimiento necesita un probador para probar un software?

¿Cuál es la mejor computadora portátil para desarrolladores / programadores a un precio asequible?

¿Cuáles son los objetivos del proyecto KRA, los objetivos del equipo y los indicadores de rendimiento (KPI) que se pueden usar para medir la efectividad de un desarrollador de software? ¿Qué puntos deberían mencionar al llenar KRA?

¿Cuál es la razón para que una compañía de software de EE. UU. Externalice el desarrollo de proyectos?

¿Qué va a tener más demanda en los próximos 5-10 años en la industria del juego? ¿Diseñadores de juegos, desarrolladores de software o artistas?

Trabajo como analista financiero para un banco. Estoy interesado en hacer un cambio de carrera y convertirme en desarrollador de software. Si me enseño a codificar con cursos en línea, ¿cuánto tiempo hasta que una empresa de tecnología pueda emplearme como desarrollador?

¿Con qué frecuencia los desarrolladores de software buscan en Google para ayudar a arreglar un código?

¿Cuál es la diferencia entre SOLID y DRY en términos de desarrollo de software?

¿Cuáles son las ventajas de la empresa de desarrollo de software?