ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

docker compose 命令

docker compose 命令

项目结构说明

你的项目/ ├── docker/ │ └── docker-compose.yml # Compose配置文件 ├── src/ ├── pyproject.toml └── Dockerfile

1. 启动和管理服务

启动服务

# 启动所有服务(前台运行)docker-compose-fdocker/docker-compose.yml up# 后台启动所有服务docker-compose-fdocker/docker-compose.yml up-d# 启动并强制重新构建镜像docker-compose-fdocker/docker-compose.yml up-d--build# 启动指定服务docker-compose-fdocker/docker-compose.yml up-dservice_name# 启动多个服务docker-compose-fdocker/docker-compose.yml up-dweb db

停止服务

# 停止所有服务(容器停止但保留)docker-compose-fdocker/docker-compose.yml stop# 停止指定服务docker-compose-fdocker/docker-compose.yml stop service_name# 停止并删除所有容器docker-compose-fdocker/docker-compose.yml down# 停止并删除容器、网络、卷docker-compose-fdocker/docker-compose.yml down-v# 停止并删除容器、网络,同时删除镜像docker-compose-fdocker/docker-compose.yml down--rmiall

重启服务

# 重启所有服务docker-compose-fdocker/docker-compose.yml restart# 重启指定服务docker-compose-fdocker/docker-compose.yml restart service_name

2. 查看状态和日志

查看服务状态

# 查看所有服务状态docker-compose-fdocker/docker-compose.ymlps# 查看指定服务状态docker-compose-fdocker/docker-compose.ymlpsservice_name# 查看所有服务(包括已停止的)docker-compose-fdocker/docker-compose.ymlps-a# 查看服务容器IDdocker-compose-fdocker/docker-compose.ymlps-q

查看日志

# 查看所有服务的日志docker-compose-fdocker/docker-compose.yml logs# 查看指定服务的日志docker-compose-fdocker/docker-compose.yml logs service_name# 实时跟踪日志docker-compose-fdocker/docker-compose.yml logs-f# 查看最后100行日志docker-compose-fdocker/docker-compose.yml logs--tail100# 查看带时间戳的日志docker-compose-fdocker/docker-compose.yml logs-t# 查看并过滤错误日志docker-compose-fdocker/docker-compose.yml logs|grepERROR

3. 构建和更新

构建镜像

# 构建所有服务的镜像docker-compose-fdocker/docker-compose.yml build# 构建指定服务的镜像docker-compose-fdocker/docker-compose.yml build service_name# 构建时不使用缓存docker-compose-fdocker/docker-compose.yml build --no-cache# 构建并拉取最新基础镜像docker-compose-fdocker/docker-compose.yml build--pull

拉取和更新

# 拉取所有服务的镜像docker-compose-fdocker/docker-compose.yml pull# 拉取指定服务的镜像docker-compose-fdocker/docker-compose.yml pull service_name# 拉取并重新启动docker-compose-fdocker/docker-compose.yml pull&&docker-compose-fdocker/docker-compose.yml up-d

4. 进入容器执行命令

# 进入容器(交互式shell)docker-compose-fdocker/docker-compose.ymlexecservice_name /bin/bash# 如果容器没有bash,使用shdocker-compose-fdocker/docker-compose.ymlexecservice_name /bin/sh# 以root用户进入docker-compose-fdocker/docker-compose.ymlexec-uroot service_name /bin/bash# 在容器内执行单条命令docker-compose-fdocker/docker-compose.ymlexecservice_namels-la# 设置环境变量执行命令docker-compose-fdocker/docker-compose.ymlexec-eENV=production service_name python app.py

5. 管理容器生命周期

暂停/恢复

# 暂停所有服务docker-compose-fdocker/docker-compose.yml pause# 暂停指定服务docker-compose-fdocker/docker-compose.yml pause service_name# 恢复所有暂停的服务docker-compose-fdocker/docker-compose.yml unpause# 恢复指定暂停的服务docker-compose-fdocker/docker-compose.yml unpause service_name

删除

# 删除已停止的容器docker-compose-fdocker/docker-compose.ymlrm# 强制删除(不提示确认)docker-compose-fdocker/docker-compose.ymlrm-f# 删除指定服务docker-compose-fdocker/docker-compose.ymlrmservice_name

6. 扩展和伸缩

# 扩展服务实例数量(例如扩展到3个)docker-compose-fdocker/docker-compose.yml up-d--scaleservice_name=3# 查看服务实例数量docker-compose-fdocker/docker-compose.ymlpsservice_name

7. 配置和验证

# 验证docker-compose.yml文件格式docker-compose-fdocker/docker-compose.yml config# 验证并查看合并后的配置docker-compose-fdocker/docker-compose.yml config --resolve-image-digests# 查看服务列表docker-compose-fdocker/docker-compose.yml config--services

8. 网络和卷管理

# 查看服务使用的网络docker-compose-fdocker/docker-compose.yml networkls# 查看服务使用的卷docker-compose-fdocker/docker-compose.yml volumels# 清理孤立的容器docker-compose-fdocker/docker-compose.yml down --remove-orphans

9. 针对你的项目常用场景

开发环境(代码变更频繁)

# 第一次启动docker-compose-fdocker/docker-compose.yml up-d--build# 代码修改后重新构建并启动(最常用)docker-compose-fdocker/docker-compose.yml up-d--build# 查看日志docker-compose-fdocker/docker-compose.yml logs-f# 进入应用容器docker-compose-fdocker/docker-compose.ymlexecapp /bin/bash# 停止并清理docker-compose-fdocker/docker-compose.yml down

生产环境(稳定运行)

# 启动docker-compose-fdocker/docker-compose.yml up-d# 查看状态docker-compose-fdocker/docker-compose.ymlps# 查看资源使用docker-compose-fdocker/docker-compose.ymltop# 重启服务docker-compose-fdocker/docker-compose.yml restart app# 更新镜像并重启(滚动更新)docker-compose-fdocker/docker-compose.yml pull appdocker-compose-fdocker/docker-compose.yml up-dapp

10. 常用组合命令(简化版)

创建一个脚本或别名来简化命令:

# 添加到 ~/.bashrc 或 ~/.zshrcaliasdcup='docker-compose -f docker/docker-compose.yml up -d'aliasdcdown='docker-compose -f docker/docker-compose.yml down'aliasdclogs='docker-compose -f docker/docker-compose.yml logs -f'aliasdcps='docker-compose -f docker/docker-compose.yml ps'aliasdcexec='docker-compose -f docker/docker-compose.yml exec'aliasdcrestart='docker-compose -f docker/docker-compose.yml restart'aliasdcbuild='docker-compose -f docker/docker-compose.yml build'aliasdcstop='docker-compose -f docker/docker-compose.yml stop'

使用别名后:

# 启动dcup--build# 查看日志dclogs app# 进入容器dcexec app /bin/bash# 停止并删除dcdown-v

11. 调试技巧

# 查看容器详细信息docker-compose-fdocker/docker-compose.ymlps-q|xargsdockerinspect# 查看某个容器的环境变量docker-compose-fdocker/docker-compose.ymlexecappenv# 在容器内安装工具(临时调试)docker-compose-fdocker/docker-compose.ymlexec-uroot appapt-getupdate&&apt-getinstall-yvim# 查看容器文件系统变化docker-compose-fdocker/docker-compose.ymldiffservice_name
返回列表