使用Bash在Tutum上创建并运行Docker容器

作者:Dmitriy Akulov译者:HexTeto


Tutum 提供非常棒的 Docker 容器托管服务。目前我使用它托管运行在jsDelivr上的一个机器人项目libgrabber 来自动更新我们的项目.

我所做的就是为这个机器人创建一个简单的 Docker 镜像,其中包含所有它运行所需要的东西。把这个镜像上传到 Tutum 的私有仓库并利用一段 bash 脚本和 crontab 每 30 分钟执行一次。

libgrabber 每次会工作 3 ~ 5 分钟,之后这个容器就会被销毁. 我使用的是一个”Small”大小的容器并将计费周期从 30 分钟转为 10 分钟(即每次 Tutum 会收取从容器启动开始 10 分钟的使用费用,超出的时间会按分钟收费)。

这种计费方式每次仅 0.182¢,每天 8.7¢,每月只需要 $2.6!它除了比 DigitalOcean 更便宜,我还得到了卓越的自动化服务,并且不必为基础架构和服务器而烦恼。

这里有一些我喜欢的功能:

按分钟计费(10 分钟以后开始计费)免费的私有 docker 仓库简单的 API易于使用良好的支持

之前 Tutum 有一个非常简单的 API 让你可以用一行代码就创建并运行一个容器。遗憾的是 Tutum 做了一些调整后,它变得稍显繁复,现在这个过程为:

    创建容器从返回的 JSON 响应中获取容器 ID使用容器 ID 发送一个启动命令

我想用一些真正的语言来解析 JSON , 比如在 bash 下完成上述过程。

最简单的方法是使用jsawk ,但是我懒得鼓捣它。我的解决方法是:

uuid=$(curl -s -H "Authorization: ApiKey username: YOURKEY" -H "Content-Type: application/json" -d  '{"image":"r.tutum.co/user/image", "name":"libgrabber", "autodestroy":"ALWAYS", "container_size":"S"}'  https://app.tutum.co/api/v1/container/ | grep -Po '"'"uuid"'"\s*:\s*"\K([^"]*)' $1)curl -s -H "Authorization: ApiKey username: YOURKEY" -X POST  https://app.tutum.co/api/v1/container/${uuid}/start/  

大功告成!现在你可以保存这个脚本并创建一个 cronjob 以随时执行它。


这篇文章由 Dmitriy Akulov 撰写,HexTeto 翻译。点击 这里 阅读原文。The article was contributed by Dmitriy Akulov, click here to read the original publication.

使用Bash在Tutum上创建并运行Docker容器

相关文章:

你感兴趣的文章:

标签云: