我刚刚进入Docker.我想将现有的应用程序基础架构放入容器中,以提供一致且隔离的环境,并且更容易部署.
我的设置
我正在运行许多服务/守护进程(Redis,ES,PG,NGINX)以及一些工作人员(需要与PG和Redis交谈).我有3个ruby Web应用程序服务和一个faye服务,所有这些都需要与Redis,PG和ES交谈.NGINX需要将代理反向代理到应用程序.
集装箱战略
我想知道的第一件事是你将使用docker和这些服务的策略.
Dockerfile
您是否/可以为所有容器制作单个Dockerfile,还是将它们拆分?即Redis-Dockerfile,Web01-Dockerfile等.
发展与生产
在开发中,我希望立即更新文件更改容器(即从主机FS安装在容器中的路径).安装点可能因开发人员而异.你会怎么设置它?
在生产中,我可以在主机上克隆应用程序存储库并在VM中安装,或者我可以在容器内部克隆应用程序代码.
我知道用于挂载卷的-v标志,所以我想你可以设置一些环境变量来使主机挂载点可配置.
jpe*_*zzo 16
容器策略:这是一个经常被问到的问题.这真的取决于你想要对你的应用程序做什么.
Dockerfile:每个映像需要一个Dockerfile.所以,如果你创建一个"一体化"容器,它就是一个Dockerfile; 如果您将应用程序拆分为具有不同角色的多个容器(Redis,DB,Web ...),那就是多个不同的Dockerfiles.
Dev vs Prod:它真的取决于语言/框架/等.你用的.
ADD后跟昂贵的构建/依赖步骤),这是一种很好的方法./myapp.在开发Dockerfile中,您将声明/myapp为a VOLUME,并且期望开发人员将其源的本地副本绑定到/myapp.在生产Dockerfile中,您将使用ADD将源复制到/myapp.构建过程中也会有细微差别.最后一种方法并不理想(因为当dev和prod环境尽可能接近时它会更好!)但在某些情况下(当构建一个新容器很长时)它会有很大帮助.
| 归档时间: |
|
| 查看次数: |
4796 次 |
| 最近记录: |