Skip to main content

python学习之路☞5.Docker build 一个 python 学习工具包

python学习之路☞5.Docker build 一个 python 学习工具包

python学习之路☞5.Docker build 一个 python 学习工具包

#docker,#linux,#python,

python 工具包的设想

每当我开始学习 python 的时候,我一直在想,为什么我要反复的搭建python所需的工具,如果哪天我的系统崩扩了,我仍需要重装,这很麻烦,有没有办法,弄个捆绑工具包,即使环境被破坏,也能很快且高效的直接直接下载使用?还真让我找到了方法,那就是 docker,它可以在大部分的 linux/unix/nt 系统上运行,这意味着它具备跨平台,而且虚拟化的方式比虚拟机更有效地利用系统底层资源,而且一个 docker 容器就是一个进程,这样就可以对每个进程的 cpu 内存占用等资源人工干预限制,docker 镜像的每层层级都有隔离型非全局环境变量不会互相传递,这种隔离机制又体现了安全性,等等好处,只要打包好 docker 镜像,那就真的是处处运行。当我大概阅读了docker官方描述的好处之后,我就敲定了这个作为 python 学习工具包的基础——docker

Docker compose & buildx

刚开始构建镜像包的时候,我就在想,这太麻烦了,写 Dockerfile ,初始化脚本,以及配套的跨平台 docker-compose.yml .env 我都快疯了,花了那么长时间,反复做调试,很显然这些付出都是值得的,每个睡不好的日日夜夜,都是执念和探索的欲望在支撑着,不要说那是喜欢是兴趣(我知道我喜欢什么,我知道我根本没兴趣),接下来就是放链接放效果

github 469138946ba5fa/docker-arch-pyenv-jupyter
0

github 469138946ba5fa/docker-arch-miniforge-jupyter
1

参考

docs.docker.com ubuntu install docker
docs.docker.com Install Docker Engine
docs.docker.com Install Docker Compose
github.com/docker docker-install
github.com/docker docker scout-cli
docs.docker.com docker buildx
docs.docker.com docker buildx output
docs.docker.com buildx_no_default_attestations
docs.docker.com docker compose
github.com/docker docker buildx
github.com/docker docker compose
docs.docker.com docker proxy pull
docs.github.com adding-a-description-to-multi-arch-images
github.com/docker oci unknown/unknown
jupyterlab.readthedocs.io jupyterlab
github.com/ipython UNKNOWN MESSAGE TYPE: ‘comm_open’
github.com/pyenv pyenv
github.com/pyenv pyenv-installer
github.com/pyenv shell environment for Pyenv
github.com/pyenv pyenv build install Python dependencies
www.tensorflow.org tensorflow
en.wikipedia.org tensorflow
cmake.org cmake
ninja-build.org ninja
clang.llvm.org clang
cling.web.cern.ch clang api
root.cern The C++ interpreter Cling
github.com/root-project llvm
github.com/root-project cling
github.com/root-project ERROR in cling::CIFactory::createCI(): esource directory lib/clang/? not found!
install-cling-with-jupyter-support.md
github.com/cs50 libcs50
www.jbang.dev jbang
adoptium.net openjdk
go.dev GO
docs.docker.com builders drivers remote
github.com/docker scout-cli
docs.docker.com buildx
docs.docker.com buildx output
docs.docker.com compose
docker proxy pull
github.com oci unknown/unknown
buildx_no_default_attestations
jupyterlab
github.com/conda-forge miniforge
github.com/brendan-rius jupyter-c-kernel
github.com/jupyter-xeus xeus-cling
github.com/compiler-research xeus-cpp
tensorflow
wiki tensorflow

Comments

Popular posts from this blog

python学习之路☞9.Comment, Primitive Data Types and Branch Conditional Structure if ... else ...

python学习之路☞9.Comment, Primitive Data Types and Branch / Conditional Structure if … else … #python,#Comment,#data type,#branch/conditional structure,#input(),#int,#float,#complex,#boolean,#if … else …, 注释(Comment) 内置函数input()(input() Function) 基本数据类型整数(Primitive Data Types int) 基本数据类型小数(Primitive Data Types float) 基本数据类型复数(Primitive Data Types complex) 基本数据类型布尔(Primitive Data Types boolean) 分支结构if … else …(Branch / Conditional Structure if … else …) 参考 Comment ''' 注释: 给人看的说明文字,Python 解释器完全忽略 要点 # 让该行 # 之后的内容全部失效,解释器跳过。 行尾注释与代码在同一行,通常用于简短说明。 docstring(三引号字符串)放在函数/类/模块第一行时,可被 help() 和文档工具读取,有特殊意义。 好的注释解释"为什么",而不是"做了什么"(代码本身已经说明了做了什么): # ✗ i = i + 1 # i 加 1 # ✓ i += 1 # 跳过表头行 ''' # 这是单行注释,# 号后面全部忽略 x = 10 # 行尾注释,代码照常执行 # 多行注释:每行都加 # # 第一行说明 # 第二行说明 # 第三行说明 """ 这是多行字符串(docstring) 虽然常被当注释用, 但本质是字符串字面量,不是注释。 通常用于函数/类的文档说明。 """ def add ( a , b ) : """返回 a 与 b 的和。"...

OnePlus 7 Pro LineageOS 23.2 Android 16 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南

OnePlus 7 Pro LineageOS 23.2 Android 16 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南 OnePlus 7 Pro LineageOS 23.2 Android 16 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南 #docker,#linux,#termux,#android,#kernel,#lineageos,#oneplus,#git,#android16, gmkm6 x86_64 主机配置环境 安装配置 docker 防止污染环境 更新 docker 插件 compose 更新 docker 插件 buildx 创建编译容器 容器内编译镜像刷机 安装magisk,termux获取root termux检测内核docker缺失功能 根据内核docker缺失功能编译boot.img并获取root 开启全部必要扩展功能 下面的步骤是开启大部分非必要扩展功能 修补内核代码方案 下面的步骤是开启剩余部分非必要扩展功能 修补内核 安装测试运行 termux docker 其它关于termux的docker-compose和docker-buildx更新 安装用于校验的工具 开机自启动和容器化部署使用例子 Android16尝试开启KVM失败的例子(不用试了,唉) 内核修补 参考&感谢 gmkm6 x86_64 主机配置环境 注意,获取自己的手机型号代号,这一点很重要在后续的命令中都要用到 比如我的手机 oneplus7pro 是 guacamole 也可以尝试通过命令获取获取,但是我不知道是不是所有设备都是这样获取的 adb shell getprop ro.boot.project_codename 最重要的是,一定要找好固件包,免得变成砖头,有线刷包就可以怎么折腾都不怕 听我说,编译内核是一件很枯燥的核对过程,这个过程需要考虑到各项之间的互相依赖和冲突并以此作出取舍 这不是个简单的过程,这里只展示具有逻辑的依赖项,需要耐心和不断的试错总结 不得不说设计的内核是一件件精美的艺术品,从某种意义上来讲,万事万物皆为艺术,而探索艺术本身是...

OnePlus 7 Pro LineageOS 19.1 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南

OnePlus 7 Pro LineageOS 19.1 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南 OnePlus 7 Pro LineageOS 19.1 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南 #docker,#linux,#termux,#android,#kernel,#lineageos,#oneplus,#git, gmkm6 x86_64 主机配置环境 安装配置 docker 防止污染环境 更新 docker 插件 compose 更新 docker 插件 buildx 创建编译容器 容器内编译镜像刷机 安装magisk,termux获取root termux检测内核docker缺失功能 根据内核docker缺失功能编译boot.img并获取root 安装测试运行 termux docker 其它关于termux的docker-compose和docker-buildx更新 参考&感谢 注意,获取自己的手机型号代号,这一点很重要在后续的命令中都要用到 比如我的手机 oneplus7pro 是 guacamole 也可以尝试通过命令获取获取,但是我不知道是不是所有设备都是这样获取的 adb shell getprop ro.boot.project_codename 最重要的是,一定要找好固件包,免得变成砖头,有线刷包就可以怎么折腾都不怕 最近 OP7P 设备型号是 guacamole 手机刷了 GM1910_11_H.40 即 android 12 https://gauss-componentotacostmanual-sg.allawnofs.com/remove-d74c973c240292cb011317bb07f424a2/component-ota/23/03/28/6d4604798d27450e8de05671d5effbae.zip 内核版本 4.14.180-perf+ 发现 github.com/OnePlusOSS 官方有相关的开放残缺的内核源码,但缺失了很多代码配置 https://github.com/OnePlusOSS/android_kernel_o...