以前每次有新服务器,都要把软件重新装一遍,后来我发现了docker,感觉很不错。于是看了一些教程,懂一些基本概念了,也试着基于debian的镜像来制作自己的容器,我把各种软件都装里面,然后提交,容量都到4GB了,开始我还觉得没什么,后来觉得不对劲,原来这种是错误的用法(好像很多博客都是教你提交的方式),要用Dockerfile来制作镜像。
问题:
我看有人说把各个软件分开,放在容器里面,假设我的项目是python写的,用到nginx,mongodb,Redis等,是不是应该一个容器运行一个软件,通过端口去操作它?
我想知道在实际的项目中,如果决定用docker,怎么合理的去使用它?
如果一个软件跑在一个容器里面,是不是都用Dockerfile来制作,软件需要升级了,再提交它,这样也可以退回来,然后配置文件等也是修改了容器去提交它,这是我目前能想到的Dockerfile 和 commit的区别和用法了。
其实可以每个软件用一个容器运行的, 然后用 link 的方式链接起来使用, 都打包放一起我个人感觉不好, "不可插拔" 打包的方式就跟使用一大个虚拟系统没有区别了, 而且也并不好维护
就比如我在学习的时候做的是 nginx 是一个容器, 然后可以启用, mysql 又是一个容器, 启动和停止都可以单独操作, 这样每个的配置文件也可以分别放在相应宿主机的文件夹位置做映射, 配置都可以在不启动 docker 的时候进行, 确实很多教程都是打包的方式,我也不知道为什么