【问题标题】:Docker compose multiple FROMDocker 组合多个 FROM
【发布时间】:2017-11-29 19:26:55
【问题描述】:

我在客户端使用 macOS,在服务器端使用 Ubuntu 16.04。

我想问一下,如果我定义一个 docker-compose.yml 文件,如下所示:

version: "3.1"
services:
    server:
      image: ubuntu
    web:
      image: nginx
    php:
      image: 7.1.12-fpm-alpine

它会安装 ubuntu、debian (FROM debian:stretch-slim) 和 alpine 吗?

还是只安装 ubuntu、nginx 和 php-7-fpm?

如果我想要第二个怎么办?

【问题讨论】:

  • 不清楚你在这里问什么。您正在定义三个不同的容器,每个容器都来自不同的图像。
  • 我只想托管一个使用 ubuntu、nginx、mariadb、php7、composer 和 git 的自定义自制 php 应用程序
  • 试试看。此类问题不属于 SO。另外-在您的撰写中,您只引用标签而不是图像,它应该是image: php:7.1.12-fpm-alpine
  • 回答你的问题;它将调出单个 ubuntu、单个 nginx 和单个 PHP 容器。如果您想要多个,请查看 docker-compose 文件文档中的 replicas 选项。

标签: docker docker-compose dockerfile docker-for-mac


【解决方案1】:

我认为您对 docker-compose 和 Dockerfile 文件感到困惑。

Docker-compose 用于组合不同的应用程序(由镜像定义的容器)以协同工作。例如。如果您有一个使用数据库的 PHP Web 应用程序,您将为数据库定义一个服务,并为 Web 应用程序定义一个服务。您在这里正在做(或尝试做)的是定义 3 个不同的容器。这可能不是您想要做的。

Dockerfile 是构建一个自定义的应用程序镜像。这就像您的应用程序的配方。你可能想要这样的东西。只需使用 php 图像作为“FROM”(基本图像)并将您的自定义应用程序添加到图像中。图像的文档通常会说明如何执行此操作 - 请在 Docker hub 上查看!

【讨论】:

    猜你喜欢
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    相关资源
    最近更新 更多