2015-04-15 121 views
9

我是Docker的新手,因此我的問題可能非常天真/愚蠢。我們目前使用的應用程序需要編譯在不同的平臺上,以使其在所需的平臺(如Linux和Window)中工作。因此,我們需要在不同的平臺上編譯源代碼(C/C++),並根據其操作系統爲客戶提供不同的可執行文件。 我的問題是 1.是否有可能與碼頭,我有一個可執行文件在所有平臺上工作?即我編譯在Linux下在一個平臺e.g我的源代碼和可執行船碼頭工人與在Window平臺上運行提前Docker可以幫助構建在不同平臺上工作的可執行文件

回答

2

感謝您仍然需要編寫不同平臺上的源代碼。碼頭工作人員的目標是在每個平臺上自動構建和測試代碼,以便您可以在代碼上工作,並讓它在每個平臺上構建和測試。

您必須首先設置docker和測試腳本,並讓代碼跨平臺工作。但在完成之後,除非真正打破它,否則基本上不會擔心任何其他平臺。

+0

感謝您的回答。我有這個查詢,如果我運行我的應用程序與docker測試是否它的執行變得太慢,如果比較直接運行在所需的平臺 – pgh

2

Docker允許運行在任何現代Linux發行版中運行相同的容器 - 您只需要在此安裝docker。您無法直接在Windows上運行這些容器 - 您需要運行帶有運行docker容器的Linux的虛擬機。這就是boot2docker正在做的 - 在Windows上運行docker容器,在虛擬機上運行Mac OS X.在某些情況下它是可以接受的。

+0

感謝您的答案。當我們說容器時,是否與可執行文件相同,即是否編譯有所需的源代碼。 ? 。如果是的話,那麼這意味着我可以在任何現代Linux發行版上運行這個exe,如果他們在那裏安裝了docker的話。 – pgh

+0

容器是一組文件 - 通常基於一些Linux發行版(例如Ubuntu) - 像小而輕的虛擬機 - 所以它通常是數百個二進制文件(Linux二進制文件,而不是windows.exe),通常用於posix環境(但有些人使用非常小的基本圖像)。也有默認情況下在容器中執行的二進制文件。這就是爲什麼你能夠在RedHat Linux上的容器上運行Ubuntu應用程序的原因 - 因爲所有的Ubuntu依賴關係已經存在。 – ISanych

+0

感謝您澄清疑問。只是最後一個問題。如果我運行我的應用程序進行docker測試,與直接在所需平臺上運行相比,執行速度是否會變得太慢。任何想法或評論。 – pgh

1

不,它不能,碼頭只有Linux。要在Windows中運行docker,您需要need a virtual machine

除非您花時間包裝安裝程序腳本以安裝虛擬機和所有虛擬機,否則只需在您選擇的Virtual Box或VMWare中運行適當的虛擬機。即使這樣,您在Windows上的應用程序體驗也會是第二次的,因爲它不是本地運行的。

相關問題