我正在艰难地将我的大脑缠绕在Docker的可能性之上,所以请原谅我的无知:
我可以获取我创建的数据库服务器的Docker镜像,并通过某种机制将其直接部署到新的EC2服务器吗?或者,我是否必须创建EC2服务器,然后在服务器上安装Docker,然后将图像拉入服务器等。
我也完全可以为这个过程的任何部分编写额外的代码。我只是不确定它是否可行。
我是否误解了Docker的最大用途?
答案 0 :(得分:5)
最简单的方法是按照你的说法去做(创建EC2实例,安装Docker,拉图像,运行图像)。
如果你想摆脱LXC(无论如何都非常小)的开销,有多种解决方案:
docker export
生成容器rootfs的tarball,在EC2实例上解压缩该tarball,并在那里chroot; chroot
运行时,以自动方式执行此操作(每个docker run
将映射到chroot); FROM
行映射到基本EC2 AMI,然后手动应用Dockerfile(或者例如通过cloudinit)。尝试获取原生图像(使用最后的解决方案)很有吸引力,但它也是最不可靠的解决方案,因为无法在Docker基础图像和EC2基础图像之间建立可靠的映射。
如果所有的基数都是例如Ubuntu,你可能会有很好的成功将Dockerfiles转换为cloudinit模板;但我个人会选择1或2选项。