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.
- Microsoft acaba de lanzar PowerApps (potencia tu negocio con aplicaciones). ¿No crees que una tecnología así es una amenaza para las empresas de TI y los desarrolladores de software?
- ¿Puedes crecer como ingeniero de back-end con Ruby on Rails?
- ¿Cómo empiezo a contribuir en proyectos de código abierto?
- Cómo desarrollar aplicaciones en una entrevista para un desarrollador de software
- ¿Es el desarrollo de software una carrera sobrevalorada?
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.