我想只使用docker compose来构建和操作容器。是否可以使用Dockerfile的所有功能,但不使用它?
IMHO不是,但我不确定这是不是真的。例如:在docker-compose.yaml中有没有Dockerfile的RUN、ADD、COPY命令的替换?我找不到。
一般来说,不:Dockerfile
说明如何构建图像,docker-compose.yml
说明如何运行图像。有各种各样的事情组合,在一个地方或另一个地方是不可能做到的。
在某些情况下,您可以模拟Dockerfile
可能使用docker-compose.yml
指令执行的操作(您可以使用volumes:
将内容装入正在运行的容器中,这看起来类似于COPY
将内容装入映像中(,但它们并不相同,通常不能仅使用一个,除非您可以仅使用预构建的映像来描述您的应用程序。
我倾向于推荐DockerfileCOPY
和CMD
指令,而不是尝试仅使用docker-compose.yml
等效指令。环境变量通常是运行时配置("数据库服务器的主机名是什么?"(,以及在docker-compose.yml
或其他运行时配置中指定的那些更有意义的变量。