如何在 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+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告