相关文章
我也是想追赶时髦的人:2019年追了Python/Flask,两个月前追了conda,上周开始追了docker。docker的基础教程网上自然也有,本文不介绍。本文还是讲这个问题:docker到底有什么用?
Conda解决了这个问题:在老服务器(例如CentOS 6)上安装Python 3.8、R 4.0、Perl 5.26等不同版本的软件,而且是在没有root权限的情况下。但是Conda不能帮你去设置软件,比如某个软件需要读取并设置指定的配置文件、需要设置端口号、配置HTTP服务器等,都得手工操作(正是,说的就是那些web端的软件:web app、web 数据库网站,等等)。
如果一个软件仅仅是在终端运行命令、添加几个参数、输出结果,那docker确实没啥用。但如果说的是上述那种需要繁琐配置的,docker就派上用场了。
我的github里面有个Python Package就完美地反映了这种情形:
- 它依赖其他一些Python包,这可以使用pip解决。
- 它还依赖一些第三方的软件,这时pip无能为力,需要用conda。
- 如果需要启动它的web界面,则在下载之后需要配置网络路径和web设置,这时conda也无能为力。此时docker上场。
目前搭了2个docker:作物育种数据库Breedbase和RSS服务器Huginn。前者是面试被问到了,后者则是不想每次都去刷那些丑陋的政府网页而自己搭设了RSS。
有意思的是,网上经常把docker描述成“开箱即用”,而我刚运行时都失败了。实际上大部分docker web app在run时都要经历一系列初始化过程,时间也许很长。Huginn还好,大约过个5分钟左右就可以用了。Breedbase真是惨了,失败了十几次之后我发现原来是在初始化过程中有个过程是git clone一些库然后安装,而那段时间github被墙了。
难道还想给位于Linux Server中的docker配置科学上网?我确实也想过,但折腾不成功啊!
最后的workaround:自己先通过github镜像把要用的库下载好,然后修改npm的package.json
,改成local安装。然后手动重新build。
就这样,所谓的docker“开箱即用”,因为这个原因足足折腾了一整个周末。当然,一年之后肉身润了,没有这些烦恼了。
我前阵子用docker一直报错,可能是我的姿势不对,开箱即用在我这并不能实现。 ???? ????
进dock里面看看是不是某些初始化步骤出错了
我的群晖nas支持docker,但一直也没研究呢
docker对资源消耗量还是比较大的(虽然属于轻量级虚拟机),我的做法是:在公司的服务器(硬件好)上搭docker,然后frp到家里的路由器(有公网IP)来进行外网访问。
对了,docker现在基本上都是搭web应用的吧?没有用docker做命令行程序的吧 ❓
???? 跟着你的科普学习
过奖,主要是偷懒不想写教程,于是就改科普,反正入门教程网上一找一大堆
我啥都没学,要用都是强行用,临时搜索 ????
我也没学,就是面试被问到了,答不出来 ????
docker的默认虚拟网段和我们机房网段冲突,每次有同事搞docker都要去提醒一些修改默认的虚拟ip地址~~
好惨啊 ❗