Docker容器的Dockerfile
我正在使用Docker,我有一个Web应用程序需要以下内容:
- Tomcat的
- PostgreSQL中
- MongoDB的
要安装第2项和第3项,请执行以下操作:
我可以像下面这样运行PostgresSQL的命令:
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
对于Mongodb我运行:
docker run --name some-mongo -d mongo
对于Tomcat,我有一个Tomcat的Dockerfile,并将我的战争复制到apps文件夹。 我使用Docker构build镜像并运行它。
我的问题是,是否有更好的方法通过单独的脚本一步一步协调? Docker是否构成了这个解决scheme?
谢谢
基本上,docker-compose只是docker run的一个yaml文件实现。 作为docker运行有parameter passing给它,这些完全相同的参数是在docker组成的一个yaml格式,而不是在命令行中规定。 Docker撰写也支持多个容器。
Docker组合还有其他一些很好的function,比如docker-compose日志,这个命令给出了通过compose启动的所有容器的日志。
Dockerfile是用于构build映像的配方,该映像是用于启动容器的模板。 要使用标准化图像来描述由多个容器组成的系统,您可以使用docker-compose而不是新的Dockerfile。 您可以使用Dockerfile来自定义一个预先存在的docker镜像,例如mysql或node或ubuntu,以便进行某些特定的使用。
docker-compose
允许您将多个docker命令以特定格式表示为.yml文件。
然后你可以使用docker-compose up
来启动一组容器。
您的示例的docker-compose .yml文件可能开始看起来像这样
一些-Postgres的: 环境: POSTGRES_PASSWORD:mysecretpassword image:postgres 一些-蒙戈: 图片:mongo
您可以使用links:
行添加容器之间的links:
。 这些和其他细节在文档中。