学习优先级:★★★★☆

易用性:★★★☆☆

docker-compose exec 命令允许用户进入正在运行的容器并启动一个交互式 Shell。这非常有用,因为它可以在不重启容器的情况下,在容器内部手动执行命令或进行调试。

示例代码

# 在后台启动容器
docker-compose up -d

# 访问名为 'web' 的容器中的 Bash Shell
docker-compose exec web bash

执行结果

运行上述命令后,将在名为 web 的容器中启动一个交互式 Shell。用户可以直接在该环境中输入命令,例如:

root@container-id:/app

docker-compose exec 非常实用,尤其是在需要调试或在容器内部执行单个命令时,而无需停止整个服务。这个命令特别有助于测试配置或查看日志文件。

注意事项

  • docker-compose exec 只能用于正在运行的容器。如果容器未运行,则需要先使用 docker-compose up 启动它。
  • 访问 Shell 的前提是容器中已安装相应的 Shell(例如 Bash)。如果容器中没有安装 Bash,可以改用 sh。

补充说明

新手常见的问题是尝试对已停止的容器使用 docker-compose exec,这行不通,因为 exec 只能与正在运行的容器配合使用。另一个细节是,某些容器镜像可能没有安装 Bash Shell;在这种情况下,应使用 sh 而不是 bash。