簡體   English   中英

如何從另一個 docker 容器中運行的應用程序啟動 Docker-Compose 中的 docker 容器

[英]How do I start a docker container in Docker-Compose from an app running in another docker container

我有兩個應用程序/服務要在 docker-compose 下運行。 (AppA 和 AppB)

我希望在運行 docker-compose up 時啟動 AppA,而不是 AppB。 並且在滿足各種條件之后,我希望AppA(它是docker容器中的一個Go應用程序)啟動AppB的docker容器。

我的 docker-compose.yml 文件定義了這兩個服務,如果使用以下命令啟動:

docker-compose up

AppA 和 AppB 都開始運行。 (所以我相信我的 docker-compose.yml 配置正確)如果我只想運行 AppA(我確實想要!)我運行這個命令:

docker-compose up AppA

並且只有 AppA 會啟動。 (到目前為止一切都很好。)

當我到達要啟動 AppB 的點時,我讓 AppA 從 golang 代碼調用以下內容:

cmd := exec.Command("docker run AppB")

要么

cmd := exec.Command("docker-compose start AppB")

這兩個都會產生錯誤:

Error: fork/exec docker run AppB: no such file or directory.

關於如何從另一個 docker 容器內的 Go 應用程序啟動 docker 容器的任何想法?

我猜您還沒有將 AppB 復制到容器 appA 中。

你可以使用這個命令

docker container cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-

這允許您在容器和本地文件系統docker container cp之間復制文件/文件夾

在你的情況下,命令可以是:

docker container appA:/appB appB

從這點開始,你可以開始思考如何在容器 A 中運行容器 B。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM