Nota: (creación de una images-docker que nos sirva como base para otras aplicaciones como apache-spark, juncional para jupyterlab y jupyter-notebook).
Images-Base-Jupyter
Nota: (Lo primero crear la carpeta my-dockerfile donde guardamos nuestros Dockerfile, con nano creamos jupyter.Dockerfile y pegamos el testo correspondiente“siempre con mayúscula .Dockerfile” ).
- In: root@juan-SATELLITE-C55-C-1JM:/# mkdir my-dockerfile
- In: root@juan-SATELLITE-C55-C-1JM:/# cd my-dockerfile
Creamos un archivo dockerfile con nano :
- In: root@juan-SATELLITE-C55-C-1JM:/my-dockerfile# nano jupyter.Dockerfile
Testo (jupyter.Dockerfile)
# Cargamos la imagen base base-python-pip-nano-java:latest y Nombre del autor
FROM base-python-pip-nano-java:latest
MAINTAINER Juan-Ma
# Ruta del proyecto
WORKDIR /opt
# Instalar paquetes o librerias
RUN pip install jupyter -U && pip install jupyterlab
# Exponer Puertos
EXPOSE 8888
# Comandos , parametros que se ejecuntan primero cuando se ejecunta el contenedor
ENTRYPOINT [«jupyter», «lab», «–allow-root»,»–ip=0.0.0.0″, «–no-browser»]
Nota: (En la versión definitiva la linea #ENTRYPOINT [«jupyter», «lab», «–allow-root»,»–ip=0.0.0.0″, «–no-browser»] la encabezamos con # para no se ejecuten).
Creamos la imagen a partir del Dokerfile :
- In: root@juan-SATELLITE-C55-C-1JM:/my-dockerfile# docker build -f jupyter.Dockerfile . -t base-jupyter:latest
Nota: Opciones ( –file , -f Nombre del Dockerfile) , ( –tag , -t Nombre y, opcionalmente, una etiqueta en formato ‘nombre:etiqueta’) .
Listamos las images :
- In: root@juan-SATELLITE-C55-C-1JM:/my-dockerfile# docker images
- Out: base-jupyter latest 04d1d2b17e54 9 seconds ago 814MB
Nota: (con la images base-jupyter se cumple el objetivo de crear la images que nos ocupa y a continuación comprobare la funcionalidad creando un contenedor y probaremos Jupyterlab y Jupyter.Notebook, porque funciona los dos versiones lo veremos a continuación).
Creamos el contenedor a partir de la images 04d1d2b17e54 :
- In: root@juan-SATELLITE-C55-C-1JM:/# docker run -it –rm -p 8888:8888 base-jupyter:latest
- Out: http://127.0.0.1:8888/lab?token=22966497c2d862c6e4235c95ec8c93a2515dac77c1927e55
Nota: (–rm lo elimina automáticamente el contenedor cuando se sale “exits” lo podemos llamar un contenedor efimero. Abrimo el enlace).
Nota: (tenemos en ejecución jupyterlab con el token correspondiente, pero con esta instalación tenemos jupyter.netbook y podemos arrancar con http://127.0.0.1:8888/tree, “ojo” no salir desde el Terminal por necesitamos el token activado).
http://127.0.0.1:8888/tree
Recopilando :
En esta images “base-jupyter” con la cual usaremos como base para crear por ejemplo otra images. como “Spark-Master”. En la cual tenemos totalmente funcional Jupyterlab y Jupyter.Notebook. El motivo de incluir la versión Jupyter.Notebook es por su simplicidad, la cual ami personalmente me parece mas practica en laboratorio y desarrollo.
Referencias: (Entorno-Moreluz)