mea*_*our 28 docker dockerfile docker-registry docker-compose
请帮助我理解docker compose中'image'和'build'之间的区别
Von*_*onC 25
image意味着docker compose将基于该图像运行容器docker compose将首先根据与build相关的路径中找到的Dockerfile构建一个映像(然后根据该映像运行一个容器).PR 2458实际上建议允许两者(并且image在构建时用作图像名称,如果存在),但是现在服务必须具有图像或构建路径.
dockerfile:作为下面的子语句build:可用于指定Dockerfile的文件名/路径.
version: '3'
services:
webapp:
build:
context: ./dir
dockerfile: Dockerfile-alternate
args:
buildno: 1
Run Code Online (Sandbox Code Playgroud)
build:需要 dockerfile 路径作为参数,它将首先构建图像,然后使用该图像创建容器。
image:需要现有的镜像名称作为参数,它将使用该镜像启动容器。
示例:docker-compose.yaml
version: '3'
services:
service1:
build: .
ports:
- "5000:5000"
service2:
image: "redis:alpine"
Run Code Online (Sandbox Code Playgroud)
service1首先会根据当前路径的Dockerfile构建一个镜像,并基于该镜像运行容器。
service2 将从 docker hub 下载“redis:alpine”镜像,并在下载的镜像上运行容器。
小智 5
深入探讨build和之间差异的官方文档image可能会有所帮助。https://docs.docker.com/compose/compose-file/build/ \n长话短说,build需要可用于构建映像的 Dockerfile 的路径,但image要转到存储库以获取现有映像。两者都可以包含在服务中,但是
\n\n当服务定义同时包含镜像属性和构建部分时,Compose 实现无法保证拉取的镜像严格等同于从源构建相同的镜像。如果没有任何明确的用户指令,具有构建支持的 Compose 实现必须首先尝试拉取映像,然后如果在注册表中找不到映像,则从源代码构建。Compose 实现可以提供根据用户请求自定义此行为的选项。
\n
| 归档时间: |
|
| 查看次数: |
6643 次 |
| 最近记录: |