构建复合 Docker 镜像
查询: Docker 能否将多个镜像合并为一个镜像,从而组合它们的功能?例如,创建一个将 Java 和 MySQL 分别包含每个组件的单独镜像捆绑在一起的镜像?
解决方案:
Docker 本身并不原生支持镜像组合,但是 DockerMake ,一个外部工具,启用此功能。它利用 YAML 配置文件来定义每个图像组件的依赖关系和构建指令。使用 DockerMake,您可以通过继承多个基础镜像来创建复合镜像。
例如,要使用 Java 和 MySQL 构建镜像,您可以定义类似于下面提供的 DockerMake 配置:
<code class="yaml">specificAB: requires: - genericA - genericB genericA: requires: - customBase build_directory: [local directory containing build instructions] build: | # Build commands for genericA, e.g., ADD installA.sh, RUN ./installA.sh genericB: requires: - customBase build: | # Build commands for genericB, e.g., RUN apt-get install -y genericB, ENV PATH=$PATH:something customBase: FROM: debian:jessie build: | # Common build instructions for both genericA and genericB, e.g., RUN apt-get update & apt-get install -y buildessentials</code>
安装了 DockerMake(通过 pip),只需执行命令 docker-make SpecificAB 即可构建所需的复合映像。
以上是Docker 能否将多个镜像合并为一个功能性复合镜像?的详细内容。更多信息请关注PHP中文网其他相关文章!