如何在 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 并在此处执行您的命令。