Docker Compose跨服务复用构建镜像:镜像名称规则疑问
为什么Docker Compose中构建的镜像名为proj_master?
嘿,这个问题问得很到位!咱们来一步步拆解proj_master这个镜像名称的由来:
- 项目目录名作为前缀:
proj其实就是你项目根文件夹的名字(也就是proj/)。Docker Compose有个默认行为:会自动把当前项目所在目录的名称作为所有相关资源(镜像、网络、数据卷等)的前缀,这样能避免不同项目的资源重名冲突。 - 服务名作为后缀:
master是你在docker-compose.yml里定义的服务名称。当你用build指令构建服务镜像时,Docker Compose会自动生成镜像名为[项目目录名]_[服务名],所以这里就组合成了proj_master。
如果你想自定义这个镜像名称,其实也很简单,只需要在master服务的配置里加上image字段指定自定义名称就行,比如:
version: '3' services: master: build: docker/myservice image: my-custom-myservice-image # 自定义镜像名 slave: image: my-custom-myservice-image depends_on: master
这样后续slave服务直接引用你自定义的镜像名就可以了,不用再依赖默认生成的proj_master。
内容的提问来源于stack exchange,提问作者user9657605
相关产品推荐
相关产品推荐

