15 KiB
15 KiB
jupyter-image-stacks
English | 中文
THIS doc for non-CN USER
dockerhub: https://hub.docker.com/r/ben0i0d/jupyter
HOW TO USE
Docker
- No data is used persistently:
docker run -d -p 8888:8888 ben0i0d/jupyter:<tag>
- Provide data for persistent use:
docker run -d -p 8888:8888 -v "${PWD}":/home/jovyan ben0i0d/jupyter:<tag>
Jupyterhub
Specify the image in the profile of the singleuser
- description: SCIPython, for scientific research and engineering applications.
display_name: Scipy
kubespawner_override:
image: ben0i0d/jupyter:scipy-c
Global description
- If you build or fork the image yourself, replace the base image in the Dockerfile with the image on DockerHub
- For commercial software such as Mathematica, MATLAB, etc., we only provide packaging, and the specific activation method and possible consequences are borne by the user
- We hide 'pycache' by default, i.e. it is not visible in the file browser view
- For ohmyzsh, you only need to execute the following code once inside the terminal
git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
- The following code is applicable to add support for conda virtual directories so that custom environments are not lost
- Data persistence
- docker add
-v "DATA-VOLUME":/opt/conda/envs/
- Jupyterhub add mountpoint
/opt/conda/envs/
- docker add
- Install the kernel in a virtual environment
- Use
conda create -n NAME *** ipykernel
create this env,usesource activate NAME
switch,usepython -m ipykernel install --user --name NAME --display-name "DISPLAY-NAME"
done
- Use
- Data persistence
List of images that are currently being built
- Upstream: Mirror upstream, benchmarking against the jupyter official minimal-notebook image
- Description
- Upstream has switched to
debian:trixie
, and GPU upstream images are also built based ondebian:trixie
- By default, we add the domain certificate of eoelab.org, which does not pose any security issues
- Sudo is added for passwordless use. In scenarios with high security requirements, do not allow privilege escalation
- Provided packages: SHELL (zsh), file compression/extraction (.bz2|.zip|.7z), project management (git|git-lfs), certificate management (ca-certificates), editor (vim), network interaction (curl|wget), Chinese fonts (fonts-wqy-zenhei)
- Upstream has switched to
- Description
- Llinux (With Desktop-GUI): Learn Linux systems without privileges, providing Xfce desktop support
- Pyjo: Supports Python and Mojo, combining Python syntax with the ecosystem for production and research. Mojo features metaprogramming capabilities. We look forward to the improvements this environment will bring.
- Description
- Mojo has been merged into Python. Due to network reasons, manual execution of
modular install mojo && python /opt/modular/pkg/packages.modular.com_mojo/jupyter/manage_kernel.py install
is required to add the kernel
- Mojo has been merged into Python. Due to network reasons, manual execution of
- Scipyjo: Provides a scientific computing environment for Python, offering rich numerical computation, optimization, signal processing, statistical analysis, etc., for scientific research and engineering applications.
- Scrpyjo: Provides a web scraping environment for Python, used for extracting data from the internet, automating information gathering and analysis tasks, suitable for data mining, web scraping, and business intelligence collection applications.
- Pyjospark: Provides a Python-based Spark programming interface for large-scale data processing and analysis, offering powerful parallel computing capabilities and rich data manipulation functions, suitable for efficient data processing and machine learning tasks in distributed environments.
- Pyjoflink: Provides a Python-based Flink programming interface for stateful computation of unbounded and bounded data streams. It also offers batch processing APIs for processing batch data computations based on stream computing engines.
- Pyjoai (With GPU): Provides a common AI toolchain, offering a rich set of deep learning frameworks and NLP model libraries, enabling developers to easily build and train various AI models for applications in image recognition, natural language processing, etc.
- Description
- C: Supports C (versions ≥ C89), a general-purpose programming language, low-level and efficient, widely used in system-level development and embedded devices.
- CPP: Supports CPP (11,14,17), a multi-paradigm programming language, an extension of the C language, with object-oriented and generic programming capabilities, widely used in system-level development and large-scale software projects.
- Cadabra: Supports Cadabra (Cadabra2), a software system based on symbolic computation, specifically designed for complex algebraic computations and tensor analysis, suitable for use in theoretical physics and relativity research.
- Julia: Supports Julia, a high-performance, dynamic programming language designed for scientific computing and data analysis, with readability similar to Python and execution speed similar to C.
- Description:
- Environment variable
JULIA_NUM_THREADS
in Julia image, please configure according to desired concurrency threads at startup.
- Environment variable
- Description:
- SciR: Supports R's scientific computing environment, a programming language for statistical analysis and data visualization, with rich data processing libraries and powerful statistical functions, widely used in data science and research fields.
- Rspark: Provides an R-based Spark programming interface for running R code on Spark. It offers R language capabilities in big data processing and distributed environments, enabling efficient data manipulation, machine learning, and statistical analysis for large-scale data processing and analysis tasks.
- Haskell: Supports Haskell, a purely functional programming language emphasizing expressiveness and static type checking, providing powerful pattern matching and higher-order function support, suitable for functional programming enthusiasts and academic research.
- Java: Supports Java, a general-purpose object-oriented programming language with cross-platform features and a vast ecosystem, widely used in enterprise development, mobile applications, and large software projects.
- Kotlin: Supports Kotlin, a modern, statically typed programming language with good interoperability with Java, offering more concise, safe, and efficient syntax, used for Android development and cross-platform applications.
- JavaScript: Supports JavaScript, a widely used scripting language for web development, used to implement interactivity and dynamic effects, also applicable to server-side development and mobile applications.
- Go: Supports Go, a concise, efficient programming language focusing on concurrency and performance, suitable for building scalable network services, widely used in cloud computing, distributed systems, and network programming fields.
- Rust: Supports Rust, a safe, concurrent, and high-performance systems programming language emphasizing memory and thread safety, suitable for developing efficient and reliable system software such as operating systems, network services, and embedded devices.
- Fortran: Supports Fortran, one of the earliest high-level programming languages, used for scientific computing and numerical analysis, particularly adept at handling large-scale, complex numerical computing problems, still widely used in the scientific field.
- Ansible: Supports Ansible, an open-source automation tool used for configuration management, deployment, and orchestration tasks, widely used in server management and system automation, simplifying complex IT operation workflows.
- Agda: Supports Agda, a dependent type functional programming language and interactive proof tool, emphasizing formal verification and program correctness, widely popular in formal methods and type theory research.
- APL (Dyalog): Supports APL (Dyalog), a symbolic array programming language known for its expressive and concise syntax, suitable for high-dimensional data processing, mathematical modeling, and algorithm development, with Dyalog being one popular implementation version.
- Chapel: Supports Chapel, a concurrency programming language for high-performance parallel programming, aimed at simplifying distributed computing and large-scale data processing, with ease of use and portability, suitable for scientific computing, parallel algorithms, and parallel task scheduling.
- Lua: Supports Lua, a lightweight, embeddable scripting language with a concise syntax and fast execution speed, widely used in game development, embedded systems, and script extensions.
- SQL: Supports SQL, a language used for managing and processing relational databases. It is a standardized language commonly used for executing various operations such as creating, modifying, and deleting tables in databases, as well as retrieving, inserting, updating, and deleting data in tables. The environment includes the duckdb database.
- Sagemath: An open-source mathematical computation system that combines multiple mathematical packages, providing extensive mathematical functions such as numerical computation, symbolic computation, discrete mathematics, and statistical analysis. It is also an interactive computing environment, convenient for mathematical modeling, algorithm design, and academic research.
- Dotnet: A cross-platform development framework that supports C#, F#, and PW, used for building various types of applications including web applications, desktop applications, and mobile applications. It provides rich class libraries and tools, simplifying development processes, and has high performance and scalability.
- Scilab (With Desktop-GUI): An open-source numerical computing software, suitable for numerical analysis, data visualization, simulation, and modeling in scientific and engineering fields. It provides a rich set of mathematical functions and toolboxes, supports matrix computation, symbolic computation, and plotting functions, is a powerful mathematical tool, especially suitable for education and research fields, provides Xfce desktop support, and includes all plugins available through APT.
- Octave: An open-source numerical computing software similar to Matlab, used for scientific computing, data analysis, and numerical simulation. It provides powerful matrix operations, plotting functions, and rich numerical analysis functions, a free and convenient tool suitable for mathematical modeling, algorithm development, and teaching tasks, includes all plugins available through APT.
- Maple: A mathematical software that provides a powerful mathematical engine through an intelligent file interface, enabling easy analysis, exploration, visualization, and solving of mathematical problems.
- Description
- Upload
license.dat libmaple.so
to the main directory. Each time the environment is started, runcp license.dat /opt/maple/license && cp libmaple.so /opt/maple/bin.X86_64_LINUX/
to activate before use.
- Upload
- Description
- Mathematica: A scientific computing software that provides powerful and convenient features for data analysis, mathematical computation, and other fields.
- Description
- Each time the environment is started, run
WolframKernel
to manually activate. View activation code athttps://ibug.io/blog/2019/05/mathematica-keygen/
. If activation fails multiple times, runrm /home/jovyan/.Mathematica/Licensing/mathpass
to delete previous license records.
- Each time the environment is started, run
- Description
- MATLAB: A programming and numerical computing platform that supports data analysis, algorithm development, and modeling.
- Description
- Upload
license.lic libmwlmgrimpl.so
to the main directory. Each time the environment is started, runcp license.lic /opt/matlab/r2023b/licenses/ && cp libmwlmgrimpl.so /opt/matlab/r2023b/bin/glnxa64/matlab_startup_plugins/lmgrimpl/
to activate before use.
- Upload
- minimal: Contains only
Product:MATLAB
- mcm: Contains toolboxes required for mathematical modeling.
- Description
List of plugins
Global
- jupyterlab-language-pack-zh-CN:Support for Chinese
- jupyterlab_tabnine:It is used for autocompletion, parameter suggestion, function document query, and jump definition
Part
Image dependencies
graph LR
BASE-->ENV{ENVIRONMENT}-->EA(Dotnet)
ENV-->EB(Llinux)
BASE-->PROGRAM{PROGRAMLANG}
PROGRAM-->PA(C)
PROGRAM-->PB(CPP)
PROGRAM-->PC(Julia)
PROGRAM-->PD(SciR)-->PDA(Rspark)
PROGRAM-->PE(Go)
PROGRAM-->PF(Rust)
PROGRAM-->PG(Java)
PROGRAM-->PH(Kotlin)
PROGRAM-->PI(JavaSript)
PROGRAM-->PJ(Raku:Perl6)
PROGRAM-->PK(Lua)
PROGRAM-->PL(Fortran)
PROGRAM-->PM(Ansible)
PROGRAM-->PN(Agda)
PROGRAM-->PO(APL:Dyalog)
PROGRAM-->PP(Cadabra)
PROGRAM-->PQ(Haskell)
PROGRAM-->PR(Pyjo)
PROGRAM-->PS(Q#)
PROGRAM-->PT(SQL)
PR-->PRA(Scipyjo)
PR-->PRB(Scrpyjo)
PRA-->PRAA(Pyjoai)
PRA-->PRAB(Pyjospark)
PRA-->PRAC(Pyjoflink)
BASE-->MATH{MATH-TOOL}-->MA(Octave)
MATH-->MB(Scilab)
MATH-->MC(Sagemath)
MATH-->ME(Mathematica)
MATH-->MD(MATLAB)-->MDA(minimal)-->MDAA(mcm)
Upstream
Package version
- cuda 12.2.0
- Python 3.11
- Julia 1.9.4
- Java openjdk-17
- kotlin(jre) openjdk-17-jre
- Dotnet 7.0
- spark 3.5.0
- jupyterlab 4
- Matlab R2023b
- Mathematica 13.3.1
- Maple 2023
- Flink
Image source
- conda bfsu:https://mirrors.bfsu.edu.cn/help/anaconda/
- pip bfsu:https://mirrors.bfsu.edu.cn/help/pypi/
- apt ustc:https://mirrors.ustc.edu.cn/help/debian.html
- npm npmmirror(AliYun): https://registry.npmmirror.com/
- apache tuna: https://mirrors.tuna.tsinghua.edu.cn/apache/
- julia-pkg ustc: https://mirrors.ustc.edu.cn/julia/
- hackage ustc: https://mirrors.ustc.edu.cn/hackage/
- Stackage ustc: https://mirrors.ustc.edu.cn/stackage/
- GO AliYun: https://mirrors.aliyun.com/goproxy/
- cargo ustc: git://mirrors.ustc.edu.cn/crates.io-index
Upstream of the project
jupyter团队项目 https://github.com/jupyter/docker-stacks
However, we are quite different from the upstream in terms of sources, packages, localizations, extensions, etc., so if you have a problem with this project, please do not ask the Jupyter team questions, as it will increase their workload
kernel
- C: https://github.com/XaverKlemenschits/jupyter-c-kernel
- Cpp: https://github.com/jupyter-xeus/xeus-cling
- Python:https://ipython.org/
- Go: https://github.com/gopherdata/gophernotes
- Haskell: https://github.com/gibiansky/IHaskell
- Java: https://github.com/SpencerPark/IJava
- JavaScript: https://github.com/n-riesco/ijavascript
- Julia: https://github.com/JuliaLang/IJulia.jl
- R: http://irkernel.github.io/
- Rust: https://github.com/evcxr/evcxr
- agda: https://github.com/lclem/agda-kernel
- ansible: https://github.com/ansible/ansible-jupyter-kernel
- Octave: https://github.com/Calysto/octave_kernel
- Dotnet(C#,F#,Powershell): https://github.com/dotnet/interactive
- Kotlin: https://github.com/Kotlin/kotlin-jupyter
- Fortran: https://github.com/lfortran/lfortran
- APL (Dyalog): https://github.com/Dyalog/dyalog-jupyter-kernel
- Raku(Perl6): https://github.com/bduggan/raku-jupyter-kernel
- Lua: https://github.com/guysv/ilua
- Cadabra: https://github.com/kpeeters/cadabra2
- Chapel: http://github.com/krishnadey30/jupyter_kernel_chapel
- SQL: https://github.com/suyin1203/duckdb_kernel
- NoVNC: https://github.com/jupyterhub/jupyter-remote-desktop-proxy
- MATLAB: https://github.com/mathworks/jupyter-matlab-proxy
Necessary copyright notice
For code derived from other teams, we added the original copyright notice to the file header, and we retain and support the copyrights of other development teams