“图像”标签在docker compose中是什么意思?
我无法准确理解以下docker compose文件中图像选项的用法 在api服务中,图像标记看起来像是用于将构建的api图像命名为服务器 然而在redis服务中,图像标签看起来像是告诉docker从dockerhub中提取哪个图像。 最后,工人服务的形象是什么?没有用于引用dockerfile的构建标记,也没有正在提取的图像。也没有定义应用程序映像,所以真的很困惑这是如何工作的?“图像”标签在docker compose中是什么意思?,docker,docker-compose,Docker,Docker Compose,我无法准确理解以下docker compose文件中图像选项的用法 在api服务中,图像标记看起来像是用于将构建的api图像命名为服务器 然而在redis服务中,图像标签看起来像是告诉docker从dockerhub中提取哪个图像。 最后,工人服务的形象是什么?没有用于引用dockerfile的构建标记,也没有正在提取的图像。也没有定义应用程序映像,所以真的很困惑这是如何工作的? 正如您所观察到的,image选项根据其在compose文件中的指定方式有两种不同的定义 1如果指定了映像选项而未指定
正如您所观察到的,image选项根据其在compose文件中的指定方式有两种不同的定义 1如果指定了映像选项而未指定生成,则compose会尝试从本地或存储库中提取映像 2如果同时指定了图像和生成选项,则使用此名称组合标记生成的图像 如果没有标签,则假定最新标签为标签。在worker服务中,除非本地或远程存储库中有app:latest映像可用,否则它将抛出错误
关于图像选项的更多信息。我认为有关的文档对此进行了很好的解释 区别主要在于图像是否存在。如果不存在图像标记,则生成将使用图像标记创建图像,并使用图像标记值对其命名 要直接回答您的问题: 如果一个映像不存在,api服务将构建一个名为server的映像 redis服务将运行一个映像'redis:latest'。如果它存在于本地,则将使用该图像。如果不是,它将默认为dockerhub并将其拉入。 worker服务使用名为app的映像。
前两分就拿到了。但仍然对3感到困惑。存储库中没有应用程序映像,本地也没有应用程序映像。那么,工人服务从哪里构建映像呢?它没有构建任何映像。如果没有映像,它应该失败。工人服务运行吗?@franklinsijo是的,工人服务运行得很好!这对我来说是最令人惊讶的。如果你看到工人在你,例如docker撰写ps时运行,那么你必须有一个名为app local的图像。docker image ls | grep app谢谢!是的,你是对的,我在本地有一个名为app的旧图像。谢谢你们俩的帮助。
version: '3'
services:
api:
build: ./server
image: server
ports:
- "5000:5000"
volumes:
- ./server:/usr/src/server
command: "python -m server.app"
restart: always
env_file:
- ./dev.env
redis:
image: redis:latest
expose:
- "6379"
command: ["sh", "-c", "redis-server --appendonly yes"]
restart: always
depends_on:
- api
worker:
image: app
volumes:
- .:/app
command: "python -m server.worker"
restart: always
env_file:
- ./dev.env
depends_on:
- redis