当前位置: 首页 > 科技观察

用这个Python的Docker正式版镜像,你也能成容器高玩

时间:2023-03-21 18:28:24 科技观察

有了这个正式版的Python的Docker镜像,你也可以成为优质游戏的容器加载PythonDocker镜像后,再安装一个Python?看完这篇Python的Docker“官方版镜像”解读,这样的“误解”就会烟消云散。不仅可以了解Docker镜像的结构和功能,还可以改变你对Docker的印象:容器看起来真的比虚拟机好用!下面以“Python官方版”为例,详细了解Docker镜像的用法和细节。这样使用Docker镜像的基础镜像是DebianGNU/Linux10,也就是Debian系统的最新版本Buster。Tips:Buster是《玩具总动员》中Andy的狗,Debian开发团队喜欢用这部电影中的角色来命名系统版本。也就是说,这是一个基于Linux的镜像,不仅保证了稳定性,还提供了bug修复。接下来,是文件中的环境变量。一定要在PATH前面加上路径,也就是你安装镜像的地方,这样可以保证安装的镜像被使用。另外,确认一下语言的环境变量,但是Python3已经默认为UTF-8了,所以这一步就没有必要了。当然你也可以确认一下Python的最新版本(图中是3.8.5)。确认环境变量后,就是运行依赖了。事实上,Python依赖于一些额外的包才能运行。其中ca-certificates相当于一个证书列表,类似于浏览器用来验证https://url/的证书,也被Python、wget等工具用来验证服务器。至于netbase,它用于在/etc中安装一些文件,通常用于将确切的名称映射到某些端口。例如,/etc/services将映射到端口443/tcp。之后就是Python的安装了。安装编译器工具链,下载并编译Python代码,并删除不必要的Debian包。其中核心部分有以下三点:1.Python会安装在/usr/local位置2.所有.pyc文件都会被删除3.一旦gcc等安装包对编译Python不再有用,那么它们也将被删除,所有这些只能通过RUN命令来实现。您可能已经注意到,在此过程中,Python编译了libbluetooth-dev。其实Python镜像是有蓝牙接口的,只是需要安装相应的安装包。另外,在设置别名的时候,在/usr/local/bin/python3和/usr/local/bin/python之间,你可以选择一个名字来使用(反正都是一样的)。最后安装pip,实际上Docker会确保安装新版本的pip,也就是它有自己的时间表,即使距离上一个版本的Python发布可能已经很久了。在此过程中,将删除所有.pyc文件。完毕!好的,它是如何工作的?其实一句话就够了。此外,如果使用CMD时ENTRYPOINT为空,则运行图像时将默认运行Python。您还可以根据需要指定其他可执行文件。你可能不知道的一些小技巧虽然大多数人不会犯这个错误,但是对于一些新手小白来说,安装PythonDocker镜像后安装Python还是可以的。在这种情况下,两只蟒蛇会在图像中“打架”,造成不必要的混乱。此外,官方Python图像通常也包含最新的pip。虽然Python3.5的最后一个版本是去年底的,但即使是安装3.5也会带来最新的pip。需要注意的另一件事是此映像将在安装后删除所有.pyc文件。另外,这个官方镜像没有安装Debian安全更新,您可能需要手动安装它们。经过一些操作后,就可以放心使用PythonDocker镜像,并在其上运行相应的程序了。那么,Docker与虚拟机究竟有何不同?Docker和虚拟机的区别作为容器,Docker有点像虚拟机,本质上是为不同环境下编写的各种程序而生。这是因为编程语言会随着环境的更新而不断迭代。新版Python更新后,有人调侃Python2和Python3好像根本就不是一门语言。如果开发了Python3的程序,但是测试和生产环境只安装了Python2,运行过程中可能会出现各种抖动。不过与虚拟机不同的是,Docker不需要自己安装操作系统,而这个东西恰恰是最占空间的。Docker将程序中要用到的各种环境“部分”用程序打包起来,做成镜像,用户只需要加载这个镜像就可以直接运行程序。与在电脑上加载多个虚拟机占用一半以上的空间相比,Docker是在只有一台电脑的情况下运行各种程序的不错选择。作者介绍ItamarTurner-Trauring在科学计算和分布式系统方面拥有超过20年的经验。他编写了Twisted网络框架并在Google工作。他为GoogleFlight贡献了后端C++代码。1996年至2000年,ItamarTurner-Trauring在巴伊兰大学和特拉维夫大学(以色列第二和第一大学)学习数学和计算机课程,并于2009年获得哈佛大学人文学科学士学位。在这个阶段,ItamarTurner-Trauring将撰写Python相关的技术文章,帮助开发者更快上手这门编程语言。