要进入 Docker 容器内部,可以使用 docker execdocker attach 命令,也可以使用其他工具(如 docker-compose)提供的方式。下面是常见的操作方法:


方式 1: 使用 docker exec 命令

docker exec 命令可以用于在运行中的容器中启动一个新的进程(通常是交互式 shell)。

命令格式:

docker exec -it <容器ID或容器名称> <要执行的命令>

通常用来进入容器的交互式 shell,例如:

docker exec -it <容器名称或容器ID> /bin/bash

或:

docker exec -it <容器名称或容器ID> /bin/sh

其中:

  • -i:保持 shell 的标准输入处于打开状态(交互模式)。
  • -t:分配一个伪终端。

注意

  • 如果容器中安装了 bash,推荐使用 /bin/bash
  • 如果容器没有安装 bash,可以使用更轻量的 /bin/sh

方式 2: 使用 docker attach 命令

docker attach 命令用于连接到容器的主进程的终端。相比于 docker exec,此方法不会启动新的进程。

命令格式:

docker attach <容器ID或容器名称>

注意事项

  • attach 是连接到容器主进程的标准输入输出。如果容器的主进程不是交互式终端(比如执行后台服务),可能无法方便地操作。
  • 如果退出时直接按 Ctrl+C,可能会导致主进程终止。建议使用 Ctrl+P + Ctrl+Q 的组合键退出(即分离),从而保持容器的运行状态。

方式 3: 通过 docker-compose 进入容器

如果你使用的是 docker-compose 编排,可以通过以下命令进入指定容器:

进入容器的交互式终端:

docker-compose exec <服务名称> /bin/bash

或:

docker-compose exec <服务名称> /bin/sh

查看容器ID或名称

如果不确定容器的 ID 或名称,可以通过以下命令查看:

docker ps

结果显示当前正在运行的容器。


举例:

假如有一个名为 my-container 的容器正在运行:

  1. 使用 docker exec 进入容器内部:docker exec -it my-container /bin/bash
  2. 使用 docker attach 连接到主进程:docker attach my-container
  3. 使用 docker-compose 进入容器:docker-compose exec my-container /bin/bash

通过这几种方式,你可以轻松进入 Docker 容器,查看或修改容器内部内容。



如何进入Docker容器内部插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://www.choupangxia.com/2025/08/02/docker-exec/