Docker

如何為同一個 docker 容器製作多個獨立的附件?

  • November 9, 2021

也許是一個微不足道的問題,但這是我的問題:

我連接到一個正在執行的 docker 容器,經過一些使用後,我需要“同時”執行一個單元測試和 gdb。

所以我打開了另一個 shell 選項卡(konsole 選項卡)並再次附加到同一個 docker 容器$ docker attach container_name,但我所做的一切都在兩個附件中得到了回應。如果我執行cd /home/user/folder_foo另一個選項卡將“做同樣的事情”,最終將兩個 konsole 選項卡放在同一個文件夾中。就像兩個選項卡都回顯了相同的命令。也許這是一個獨特的使用者結構,我什至不可能。

我真的需要在同一個 docker 容器中並行做兩件事,怎麼做?

$ docker --version
Docker version 20.10.9, build c2ea9bc

我正在使用 Ubuntu 21.04

附加到容器會將目前的輸入和輸出流(因此當以互動方式執行時,您的終端)附加到容器中正在執行的入口點命令。因此,從不同終端多次附加將顯示來自同一命令的相同輸出,並且來自任一終端的輸入都會影響兩個附件。

要在同一個容器中同時執行不同的命令,需要實際執行不同的命令。保留您擁有的第一個附件,並為您的第二個命令執行

docker -it exec container_name /bin/bash

(假設你有/bin/bash你的容器圖像)。

這將在同一個執行容器中為您提供兩個單獨的外殼。

引用自:https://unix.stackexchange.com/questions/676756