首页 > 解决方案 > Dockerfile 可以用 docker-compose.yaml 替换吗?

问题描述

我想仅使用 docker-compose 构建和操作容器。是否可以使用 Dockerfile 的所有功能但不使用它来做到这一点?

恕我直言,不是,但我不确定它是否属实。例如:docker-compose.yaml 中 Dockerfile 的 RUN,ADD,COPY 命令是否有任何替换?我找不到。

标签: dockerdocker-compose

解决方案


一般来说,不:Dockerfile说如何构建映像,docker-compose.yml说如何运行它。有各种组合的事情是不可能在一个地方或另一个地方做的。

在某些情况下,您可以模拟指令Dockerfile可能会做的事情(您可以使用将内容挂载到正在运行的容器中,这看起来类似于将内容放入图像中),但它们并不相同,您通常不能专门使用一,除非您可以仅使用预构建的图像来描述您的应用程序。docker-compose.ymlvolumes:COPY

我倾向于推荐 DockerfileCOPYCMD指令,而不是尝试仅使用docker-compose.yml等效项。环境变量通常是运行时配置(“数据库服务器的主机名是什么?”)并且在docker-compose.yml运行时配置或其他运行时配置中指定更有意义。


推荐阅读