如何进入 Docker 容器的 Shell?

dockeroperating systemopen source更新于 2026/2/14 8:37:17

Docker 容器启动并运行后,您可以像在 Ubuntu 机器上一样操作 Docker 容器的环境。您可以访问容器的 Bash 或 Shell,在其中执行命令,并操作文件系统。您可以在容器内部构建、测试和部署应用程序。

主要有三种方法可以访问正在运行的容器的 Shell。它们是:

  • 使用 Docker run 命令运行容器并访问其 Shell。
  • 使用 Docker exec 命令在活动容器中运行命令。
  • 使用 Docker start 命令并将 Shell 附加到已停止的容器。

在本文中,我们将通过实际示例逐一讨论所有这些方法。让我们看看如何操作。

Docker 运行命令

如果您没有正在运行的容器,可以使用 Docker 运行命令创建并运行与镜像关联的容器,并访问该容器的 bash。让我们尝试运行一个 Ubuntu 容器并访问它的 bash。

$ docker run -it --name=myubuntu ubuntu:latest bash

在上面的命令中,我们使用了 -i(交互式)和 -t(伪 TTY)选项,它们允许我们使用终端驱动程序与容器交互。最后的 bash 命令会在容器启动后立即运行。因此,执行此命令后,守护进程将自动创建容器并运行,并提供对其 shell 的访问权限。

请注意,如果您的系统上没有 Ubuntu 镜像,守护进程将拉取镜像,然后自动创建并运行容器。

一旦您可以访问容器的 bash,就可以开始与 Ubuntu 环境交互并使用其文件系统。

Docker Exec 命令

Docker exec 命令用于在已运行的容器内运行命令。只有当容器的主进程正在运行时,才能使用此命令。除非您使用 -w 选项指定所需的目录,否则在容器内执行的任何命令都将在默认工作目录中运行。此外,您将无法运行任何引用或链接的命令。只有可执行的命令才能运行。

Docker exec 命令的语法为 -

$ docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

您可以使用此命令为已在其他位置运行的容器启动一个新的 bash 会话。

$ docker exec -it myubuntu bash

此命令使用交互式和伪 TTY 选项来启动已在运行的 ubuntu 容器的 bash。

Docker Start 命令

如果您有一个处于退出状态的容器,并且想要启动与该容器关联的 bash,您可以使用 Docker start 命令以及 --attach 和 --interactive 选项。这将连接一个新的终端,并允许您轻松地与容器交互。让我们看看如何操作。

Docker 启动命令的原始语法是 -

$ docker start [OPTIONS] CONTAINER [CONTAINER...]

如果您想检查容器的状态,可以尝试列出所有容器。

$ docker container ps -a

您可以使用以下命令创建已停止容器的 Bash 会话 -

$ docker start -ai myubuntu

总而言之,在本文中,我们讨论了如何进入 Docker 容器的 Shell,以访问正在运行、已停止或创建新容器的 Shell。我们使用了 Docker run、exec 和 start 命令来执行此操作。根据您自己的用例,您可以使用上述任何一种方法来实现您的目标。


相关文章