如何使用docker-compose up指定运行特定镜像ID的Airflow服务
问题1:你提到的修改docker-compose.yml的方案是否可行?
完全可行,操作步骤如下:
- 注释掉webserver服务下的整个
build配置块 - 取消
image配置项的注释,将值改为image: dddddddddddd - 正常执行
docker-compose up即可,docker-compose会直接调用本地存在的ID为dddddddddddd的镜像启动webserver服务,配套的调度器、元数据库等其他服务也会按原有配置正常启动,完全满足你的需求。
问题2:为什么之前执行docker-compose up dddddddddddd会报错?
docker-compose up命令后跟随的参数是docker-compose.yml中定义的服务名,而非镜像ID,你传入的dddddddddddd是镜像ID,compose在配置文件中找不到对应名称的服务,因此会返回No such service的错误。
其他可选方案(无需修改docker-compose.yml,适合临时测试场景)
如果你只是临时需要启动旧版本验证,不想改动配置文件,可以按以下步骤操作:
- 先给无标签的旧镜像打一个临时标签,避免直接使用ID出错:
docker tag dddddddddddd old-airflow-web:v1
- 用
run命令启动webserver服务并指定镜像,compose会自动启动该服务依赖的所有配套服务:
docker-compose run --service-ports webserver old-airflow-web:v1
如果需要后台运行,加上-d参数即可。
内容的提问来源于stack exchange,提问作者Canovice
相关产品推荐
相关产品推荐

