
docker-compose 如何让服务 Y 等服务 X 就绪后再启动?
depends_on 配 condition: service_healthy 可让 Y 等 X 通过健康检查后启动;X 需定义 healthcheck。只控制顺序不等就绪是旧版行为。本文给出完整配置示例。
聚焦概念、架构、排障、价格与选型,一篇解决一个明确问题。

depends_on 配 condition: service_healthy 可让 Y 等 X 通过健康检查后启动;X 需定义 healthcheck。只控制顺序不等就绪是旧版行为。本文给出完整配置示例。

用 Docker volume 管理持久数据:docker volume create 创建,docker run -v 卷名:/容器路径 挂载,容器删了数据还在;备份可用临时容器打包。数据库类有状态服务必须挂卷。

传环境变量给容器:docker run -e KEY=VALUE 逐个传、-e KEY 透传宿主变量、--env-file .env 批量传;compose 用 environment 或 env_file。本文含秘钥管理建议。

把容器接入同一个用户自定义网络(docker network create + docker run --network),即可用容器名互相 ping 和连接,Docker 内置 DNS 自动解析;默认 bridge 网络不支持名称解析。

容器可写层随删除消失,保数据靠三类挂载:命名卷(应用数据首选)、绑定挂载(要直接访问宿主机文件)、tmpfs(反之,内存不留痕);另有 docker cp 抢救已退出容器的数据。

推送私有仓库三步:docker login 仓库地址 认证 → docker tag 本地镜像 仓库地址/镜像名:标签 打标 → docker push 推送。本文含 Harbor/云仓库示例与常见报错处理。

docker compose build 服务名 重新构建镜像,docker compose up -d --build 构建并重建容器;只想强制重建(不改代码)用 up -d --force-recreate。本文讲清各命令差别。

删单个镜像 docker rmi 镜像名:标签,批量删 docker rmi 名1 名2,全删 docker rmi $(docker images -aq);被容器占用的需先删容器或 -f。

docker compose restart 服务名 只重启指定服务;配置变了要重建用 up -d 服务名;不想动依赖容器加 --no-deps。本文区分 restart 与 recreate 的差别。

docker exec 容器名 命令 在运行中的容器内执行命令;加 -it 开交互终端,-u root 指定身份,-e 传环境变量。批量场景用 sh -c 串多条。本文给出完整用法。

容器内跑 cron:Dockerfile 装 cron、COPY crontab 文件、入口脚本用 cron -f 前台运行;注意 cron 不继承容器环境变量。

专门的 cron 容器:Dockerfile 安装 cron、COPY 任务定义到 /etc/cron.d/、chmod 0644、crontab 应用、CMD ["cron","-f"] 前台运行。本文给出最小可运行示例与输出收集方法。