2017-08-07 47 views
0

我不是Docker專家,並且一直在努力解決這個問題幾個小時 -安裝單個CLI以與多個容器接口?

我有2個獨立的圖像 - 一個用於Python REPL,另一個用於Scheme REPL。我想創建一個應用程序,它提供了一個包含2個運行圖像的容器的CLI界面 - 這樣,當我輸入python時,它將連接到Python REPL容器並執行之後的所有內容;而scheme連接到Scheme REPL容器。

我有2個問題 -

一)這是不可能的使用泊塢撰寫?另外,這是否真的可以作爲Docker Compose的用例?

b)假設我開始用下面的裸機docker-compose.yml -

version: '3.3' 
services: 
    python: 
     image: "python:3.6.2-alpine3.6" 
    racket: 
     image: "m4burns/racket" 

我是否建立共同的CLI(說的是bash shell),在與其他兩個,如果我發出蟒蛇通信的另一容器或計劃命令?我如何定義入口點?

我知道一個更簡單的解決方案就是製作一個Dockerfile,它將Python & Scheme設置合併到一個圖像中。但是,我真的想讓他們分開,並因此走上這條道路。

任何幫助將不勝感激。

回答

0

使用docker-compose不會爲您提供單個CLI界面。而是創建兩個單獨的容器,但優點是不同的容器可以使用您指定的服務名稱相互通信。

version: '3.3' 
services: 
    python: 
     image: "python:3.6.2-alpine3.6" 
    racket: 
     image: "m4burns/racket" 

從你給的例子,python可以通過使用http://racket訪問racket。容器可以使用他們的服務名稱訪問彼此。默認情況下,服務名稱被視爲主機名。這個主機名用於通信。大多數人使用這種默認行爲,但是,您也可以單獨指定主機名。