Wie der Titel schon sagt, handelt es sich um ein Arbeitsprotokoll zur einfachen Installation und Verwendung von Jupyter Notebook mit Docker. Stellen Sie Scala auch auf dem Jupyter-Notizbuch zur Verfügung.
Es wird davon ausgegangen, dass Docker bereits installiert ist.
Bereiten Sie die folgende Docker-Datei vor. Notieren Sie sich alle Python-Pakete, die Sie möglicherweise verwenden.
Dockerfile
FROM centos:7
RUN yum install -y python3 java-11-openjdk
RUN pip3 install jupyter jupyter-contrib-nbextensions jupyter_nbextensions_configurator numpy pandas matplotlib scikit-learn mlxtend boto3
RUN jupyter contrib nbextension install
# Jupyter-Scala Installation
WORKDIR /install
ENV SCALA_VERSION=2.13.1
ENV ALMOND_VERSION=0.8.2
RUN curl -Lo coursier https://git.io/coursier-cli
RUN chmod +x coursier
RUN ./coursier bootstrap -r jitpack -i user -I user:sh.almond:scala-kernel-api_$SCALA_VERSION:$ALMOND_VERSION sh.almond:scala-kernel_$SCALA_VERSION:$ALMOND_VERSION -o almond
RUN ./almond --install
WORKDIR /work
CMD jupyter notebook --ip='*' --no-browser --allow-root --NotebookApp.token=''
Die Python-Pakete "jupyter-contrib-nbextensions", "jupyter_nbextensions_configurator" und die nachfolgende "jupyter Contrib nbextension install" dienen zur Verwendung von nbextensions.
Auf der offiziellen Seite unten finden Sie Informationen zur Installation von Jupyter-Scala. Installation · almond
Die jupyter
Option --allow-root
ist eine Option, die erforderlich ist, um Jupyter mit Root-Rechten auszuführen. Dies ist erforderlich, da es sich um eine Root-Berechtigung in Docker handelt.
--ip = '*'
ist eine Einstellung, mit der Sie von überall auf Jupyter zugreifen können. --NotebookApp.token = ''
ist eine Einstellung zum Überspringen der Token-Eingabe, wenn Sie mit einem Browser auf Jupyter zugreifen. Ich führe dies unter Linux aus, das auf VirtualBox auf meinem PC ausgeführt wird, daher habe ich diese zur Vereinfachung festgelegt. Dies ist jedoch eine Einstellung, auf die von außen frei zugegriffen werden kann. Daher wird sie normalerweise nicht empfohlen. Überlegen.
Erstellen Sie ein Bild mit dem folgenden Befehl in dem Verzeichnis, das diese Docker-Datei enthält.
$ docker build -t myjupyter .
Starten Sie Jupyter mit dem folgenden Befehl, nachdem Sie in das Verzeichnis gewechselt haben, in dem Sie mit Jupyter arbeiten möchten.
$ docker run -it --rm -p 8888:8888 -v $HOME/.aws:/root/.aws -v $(pwd):/work myjupyter
-v $ HOME / .aws: / root / .aws
wurde hinzugefügt, weil ich boto3 verwenden wollte, um auf die AWS-API zuzugreifen.
Greifen Sie nach dem Starten von Jupyter mit einem Browser auf Port 8888 zu.
Bei einem normalen Docker ist der Eigentümer der von Jupyter erstellten Datei root, sodass rootless Docker besser zu sein scheint.
Recommended Posts