Docker容器的Dockerfile

我正在使用Docker,我有一个Web应用程序需要以下内容:

  1. Tomcat的
  2. PostgreSQL中
  3. 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: 。 这些和其他细节在文档中。