如何在 Docker 容器内运行命令?


在构建 Docker 镜像并创建其运行实例(换句话说,创建 Docker 容器)后,您可能希望在 Docker 容器内执行一些命令,例如安装软件包、打印内容或浏览容器内的目录。Docker 提供了几种方法来实现这一点。您可以轻松访问容器环境,在环境中执行命令,以及访问或创建文件和目录。在本文中,我们将讨论一些在 Docker 容器内运行或执行命令的方法。

  • 使用 Docker exec 命令

您可以使用 Docker exec 命令通过本地机器的命令行在容器内运行命令。为此,您需要拥有想要在其中执行命令的容器的容器 ID。要获取所有容器的容器 ID,可以使用以下命令:

sudo docker ps −a

以上命令将显示所有容器及其名称、ID 和其他信息。您可以复制想要在其中运行命令的容器的容器 ID。假设您想在该容器内回显一个语句,您可以使用以下命令:

sudo docker exec −it <container−id> echo "Welcome to tutorialspoint"

请注意,要使用 exec 命令在容器内执行命令,您的容器必须处于运行状态,否则会抛出错误,说明具有该容器 ID 的容器未运行。

  • 使用容器的 bash

在 Docker 容器环境中运行命令的另一种方法是启动该特定容器的 bash 并在其内执行命令。您可以使用以下命令启动容器的 bash:

sudo docker run −it <image−name> bash

由于使用了 -i 标记,上述命令将在交互式 shell 中调用与指定镜像名称关联的容器的 bash。在 bash 中,您可以执行命令。例如,您可以使用以下命令更新 Ubuntu Docker:

apt−get update

或者您可以安装一个软件包,例如:

apt−get install firefox
  • 使用 Dockerfile

这是在 Docker 容器内运行或执行命令最常见的方法。Dockerfile 包含一组指令,当您首次使用 docker build 命令构建镜像时,这些指令将逐步执行。您可以在 Dockerfile 中使用 RUN 指令运行命令。例如,如果要在 Ubuntu 容器内安装 Firefox,则可以按如下方式在 Dockerfile 中指定它们:

FROM ubuntu
RUN apt−get −y update
RUN apt−get install firefox

总而言之,很明显 Docker 容器与任何 Linux 终端没有什么不同。您可以以与在本地系统终端中相同的方式执行命令。如果您希望仅在容器开始时运行一次命令,例如安装基本软件包或库,则可以直接在 Dockerfile 中指定它们。如果您想在 Docker 容器内运行 Python shell 或任何应用程序,则可以轻松启动 bash 并在此处执行您的命令。

更新时间: 2020年10月27日

3K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告