在 Docker 容器内运行命令

如果您正在 Docker 容器内开发应用程序,则可能需要使用命令来安装软件包或访问 Docker 容器内的文件系统。在 Docker 容器内执行命令应该很容易,因为在整个开发阶段,您都需要多次执行此操作。Docker 为您提供了多种在容器内执行命令的方法。

在本文中,我们将首先讨论什么是 docker 和 docker 容器,然后解释在 Docker 容器内执行各种命令的不同方法。在文章的最后,我们将分享常见问题解答,以解答有关在 docker 容器内运行命令的常见问题。

什么是 Docker?

Docker是一个开源容器平台工具,可用于容器化应用程序。它允许开发人员将应用程序及其所有依赖项打包成一个单独的包,使其成为一个可执行的软件包。它确保在不同的开发阶段提供一致的环境。它还能帮助开发人员简化开发生命周期,使其更轻松地在任何地方构建、发布和运行应用程序。

什么是 Docker 容器?

Docker 容器是一个轻量级的可执行软件包。它包含运行软件所需的所有资源,例如应用程序代码、运行时、系统工具、库和设置。Docker 容器具有隔离功能,即容器之间彼此隔离,并且无论支持 Docker 的环境如何,主机系统都能确保容器的一致性运行。

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

以下是 docker 容器内部运行命令的方法:

方法 1:使用 Bash

您可以直接访问 Docker 容器的 bash 并在其中执行命令。启动容器的 bash 非常简单,您可以使用此命令来完成。

sudo docker run -it ubuntu bash

使用 bash 命令

  • 一旦你可以访问 bash,就可以在那里执行任何命令。在本例中,我们将执行 echo 命令。

回声 geeksforgeeks

回声 geeksforgeeks

方法 2:使用 Docker exec 命令

  • 为了使用**exec**命令在 Docker 容器内运行命令,您必须知道 Docker 容器的**容器 ID** 。您可以使用以下命令获取容器 ID 。

sudo docker 容器 ls

( 或者 )

sudo docker ps -a

列出 Docker 进程

  • 获取容器 ID 后,即可使用Docker **exec**命令。但您必须先确认容器正在运行,然后才能执行 exec 命令。要启动容器,请使用此命令。

sudo docker 启动 d64b00529582

  • 之后执行**exec**命令。

sudo docker exec -it d64b00529582 回显“GeeksforGeeks”

docker 容器执行

**方法 3:使用 Dockerfile**

创建大型应用程序时,始终建议您通过在Dockerfile中指定命令来执行命令。但是,您应该只在Dockerfile中包含要在构建容器时执行的命令。对于随时随地执行命令,您可以使用上述两种方法中的任意一种。要通过Dockerfile执行命令,您可以使用Docker 运行命令来指定它们。

从 ubuntu:latest
运行 echo “geeksforgeeks”

  • 创建上述Dockerfile 后,您可以使用Docker build命令构建镜像。

sudo docker build -t 示例图像。

使用dockerfile

  • 可以看到,经过第 2 步,已经打印出了“geeksforgeeks”。

为什么要在 Docker 容器内运行命令?

以下是在 docker 容器内运行命令的一些好处和原因:

  • **隔离**:容器提供隔离的环境,确保命令有效运行,而不受主机系统或任何其他容器的影响。
  • **一致性:** Docker 容器将封装应用程序所需的所有依赖项、库和配置,以确保从开发到生产的不同环境中运行的所有命令保持一致。
  • **可移植性:**容器内执行的命令可以轻松移动并在不同的系统之间运行,确保环境在任何地方都以相同的方式运行,从而实现无缝部署和可扩展性。
  • **安全性:**容器通过将应用程序与主机系统隔离,限制漏洞的潜在影响并最大限度地降低安全风险,提供了额外的安全层。

如何在 docker 容器内运行多个命令?

我们可以用多种不同的方式在 docker 容器内运行多个命令。这里我们通过 docker exec 命令来演示。

  • 以下命令可帮助您使用以下docker exec命令在正在运行的容器内以交互方式执行多个命令sh -c

docker exec -it \ sh -c “apt-get update && apt-get install -y curl && echo ‘安装完成'”

  • 在这里,尝试用您的容器名称或容器 ID 替换 \

Docker Run 和 CMD 之间的区别?

以下是 docker run 和 cmd 的区别:

特征 跑步 命令
**执行时间** Docker run 在构建过程中执行命令 Docker 在 dockerfile 中指定容器启动时默认运行的命令
**图层创建** 它在 Docker 镜像中创建一个新层 它不会创建新的层,只是设置默认的执行命令
**用法** 用于安装软件包和依赖项,配置环境 它用于定义在容器中运行的主要命令或脚本
**覆盖行为** 这些命令在运行时执行,并且不能被覆盖 可以通过指定不同的命令来覆盖它docker run

Leave a Comment