
最近两天折腾了一下docker容器,主要的原因是我的亚马逊云服务器快到期了。之前因为我主要在手机上用pydroid3和termux进行python编程,学习机器学习,量化投资等。但有的库在手机上要么装不了,要么装上却用不了。于是弄了个可以免费使用的亚马逊云的E2服务器,在服务器上搭建开发环境。在手机上写程序,再通过scp或者github传到服务器上,在服务器上运行,再把结果传回手机。我的量化投资学习笔记里的代码都是这么完成的。
这么做有点麻烦,我想的是在手机上写好以后,一个命令就可以调用服务器上的开发环境执行程序,结果(比如图片)等就直接保存在本地了。在知乎上提问了,有知友建议用docker容器,我搜了一下,的确能实现我的想法,但是几乎都是用IDE来实现的,有用pycharm的,也有用VS code的,问题是我用的是安卓手机……而且看着还是蛮复杂的,于是就放下了,还是用scp吧。
最近因为免费服务器快到期了,到期我不想续期了,毕竟付的是美元。到期面临着重新在新的服务器上建开发环境的问题。而docker容器正好就是解决这个痛点的神器。于是我决定尝试一下。docker容器是用go语言开发的,它就像一个集装箱。集装箱内部装的东西是各种各样的,但装到集装箱里就以统一的面目示人了。docker就是把程序和程序的运行环境都打包成一个容器(container),以容器为单位发布,运行。与虚拟机相比,容器要轻量得多,开销要小得多。因此一台设备上可以运行很多的容器。还有一个重要的概念是镜像(image),是建立容器的模板。可以自己编辑Dockerfile来建立镜像,也可以用别人建立好的镜像,并在此基础上修改,增加新的内容,再把这个新的容器保存为镜像。在docker hub网站上有各种各样建立好的docker镜像。
我先在服务器上折腾,安装了docker,在docker hub网站上注册了账号,用docker pull下载了一个anaconda3的镜像,生成容器以后,在容器里