讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么使用docker-compose_Linux如何编排多容器服务【教程】

夜浩大大_9913

夜浩大大_9913

发布时间:2026-03-26 17:53:51

|

853人浏览过

|

来源于php中文网

原创

docker-compose.yml 不必在根目录,但默认只读当前目录的该文件;可用 -f 指定任意路径,支持多文件叠加(后加载覆盖前一个);build 与 image 并存时构建仍执行但镜像按 image 命名;network 需顶层声明且服务显式加入;env_file 变量总被 environment 覆盖。

linux怎么使用docker-compose_linux如何编排多容器服务【教程】

docker-compose.yml 文件必须放在项目根目录吗

不是必须,但 docker-compose 默认只认当前工作目录下的 docker-compose.yml 或 docker-compose.yaml。如果文件在别处,得显式指定路径。

  • 用 -f 参数加载任意位置的文件:docker-compose -f /path/to/docker-compose.yml up
  • 多个文件叠加?可以多次用 -f,后加载的配置会覆盖/合并前一个(注意:service 级别是替换,environment 等字段是合并)
  • 常见踩坑:执行命令时 pwd 不对,报错 ERROR: .FileNotFoundError: docker-compose.yml not found —— 其实文件存在,只是没在当前目录

build 和 image 同时写在 service 里会发生什么

会冲突。如果同时声明 build 和 image,docker-compose build 仍会构建镜像,但构建完会按 image 字段重命名并打标签;而 docker-compose up 启动时优先使用 image 指定的名字拉取或运行,不一定用本地刚构建的镜像。

  • 想确保用本地构建结果?删掉 image 行,或让 image 值和 build 输出一致(如 image: myapp:latest + build: .)
  • 想跳过构建直接拉远端镜像?只留 image,删掉 build
  • CI/CD 场景下容易误配:本地测试用 build,上线却漏删 build 导致部署时意外触发构建

networks 配置不生效的典型原因

最常见的是 network 名字没对上,或者服务没显式加入网络 —— docker-compose 不会自动把所有 service 接入默认网络以外的自定义网络。

  • 自定义 network 必须在顶层 networks: 下声明,且每个 service 要通过 networks: 字段手动加入:networks: [mynetwork]
  • 不同 compose 文件间 network 隔离:用 external: true 才能复用已存在的网络(比如其他项目创建的)
  • 容器启动后检查:docker network inspect <network-name>,确认容器是否出现在 Containers 列表里
  • 别名(aliases)只在该 network 内有效,跨 network 的服务发现要靠 network 共享或 DNS 设置

env_file 和 environment 混用时变量怎么覆盖

顺序决定优先级:environment 字段里的值永远覆盖 env_file 里同名变量,无论 env_file 加载多早。

  • env_file 适合放通用配置(如 DB_HOST、REDIS_PORT),environment 适合放环境特例(如本地调试用 DEBUG=true)
  • 文件内变量不支持 shell 展开(HOME 不会被替换成路径),也不解析 $VAR 引用,纯文本读取
  • 想让 env_file 支持变量继承?得用 .env 文件(顶级)+ docker-compose.yml 中引用 ${VAR},但那是另一套机制,和 env_file 无关

复杂点在于:.env 文件、env_file、environment、命令行 -e 四层作用域,实际项目里建议只保留两层(比如 .env + environment),否则改个变量都不知道从哪冒出来的。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

969

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2900

2023.10.25

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

725

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

5519

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

6557

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2513

2024.04.08

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

279

2026.02.11

Docker 容器部署
Docker 容器部署

本专题整合了Docker容器部署相关内容,阅读专题下面的文章了解更多详细操作教程。

451

2026.03.31

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

20

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn