Docker多个 Docker 容器的文件
Dockerfile for multiple Docker containers
我正在使用 Docker 并且我有一个需要以下内容的网络应用程序:
- Tomcat
- PostgreSQL
- MongoDB
要安装第 2 项和第 3 项,我执行以下操作:
我可以 运行 为 PostgreSQL 命令,例如:
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
对于Mongodb我运行:
docker run --name some-mongo -d mongo
对于 Tomcat,我有一个包含 Tomcat 的 Docker 文件并将我的 war 复制到应用程序文件夹。我使用 Docker 和 运行 构建图像。
我的问题是是否有更好的方法通过单独的脚本来逐步协调这个过程? Docker 是否为此编写了解决方案?
谢谢
Dockerfile是构建镜像的配方,是启动容器的模板。要描述由使用标准化图像的多个容器组成的系统,您可以使用 docker-compose,而不是新的 Dockerfile。您可以使用 Dockerfile 自定义预先存在的 docker 图像,例如 mysql 或节点或 ubuntu,用于某些特定用途。
docker-compose
允许您将多个 docker 命令表达为特定格式的 .yml 文件。
然后您可以使用 docker-compose up
启动容器集。
您的示例的 docker-compose .yml file 可能看起来有点像这样
some-postgres:
environment:
POSTGRES_PASSWORD:mysecretpassword
image: postgres
some-mongo:
image: mongo
您可以使用 links:
行在容器之间添加链接。这些和其他详细信息都在文档中。
基本上 docker-compose 只是 docker 运行 的 yaml 文件实现。
由于 docker 运行 有传递给它的参数,这些完全相同的参数在 docker compose 中以 yaml 格式而不是在命令行中规定。
Docker compose 也支持多容器。
Docker compose 还有一些其他不错的功能,例如 docker-compose logs ,此命令提供由 compose 启动的所有容器的日志。
我正在使用 Docker 并且我有一个需要以下内容的网络应用程序:
- Tomcat
- PostgreSQL
- MongoDB
要安装第 2 项和第 3 项,我执行以下操作:
我可以 运行 为 PostgreSQL 命令,例如:
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
对于Mongodb我运行:
docker run --name some-mongo -d mongo
对于 Tomcat,我有一个包含 Tomcat 的 Docker 文件并将我的 war 复制到应用程序文件夹。我使用 Docker 和 运行 构建图像。
我的问题是是否有更好的方法通过单独的脚本来逐步协调这个过程? Docker 是否为此编写了解决方案?
谢谢
Dockerfile是构建镜像的配方,是启动容器的模板。要描述由使用标准化图像的多个容器组成的系统,您可以使用 docker-compose,而不是新的 Dockerfile。您可以使用 Dockerfile 自定义预先存在的 docker 图像,例如 mysql 或节点或 ubuntu,用于某些特定用途。
docker-compose
允许您将多个 docker 命令表达为特定格式的 .yml 文件。
然后您可以使用 docker-compose up
启动容器集。
您的示例的 docker-compose .yml file 可能看起来有点像这样
some-postgres: environment: POSTGRES_PASSWORD:mysecretpassword image: postgres some-mongo: image: mongo
您可以使用 links:
行在容器之间添加链接。这些和其他详细信息都在文档中。
基本上 docker-compose 只是 docker 运行 的 yaml 文件实现。 由于 docker 运行 有传递给它的参数,这些完全相同的参数在 docker compose 中以 yaml 格式而不是在命令行中规定。 Docker compose 也支持多容器。
Docker compose 还有一些其他不错的功能,例如 docker-compose logs ,此命令提供由 compose 启动的所有容器的日志。