2016-03-03 169 views
6

在構建碼頭圖像時,如果圖像使用docker-compose build vs docker build構建,則圖像ID不同。 env具有不同的主機名。由docker-compose構建與docker構建生成的docker鏡像有什麼不同?

還有什麼不同?爲什麼圖像不同?

+1

我相信除了容器名稱以外,沒有其他區別,'docker-compose'會自動生成,但是您可以指定何時使用'docker-build'。 –

+1

這仍然是一個公開的問題:https://github.com/docker/compose/issues/883 –

回答

2

就圖像內容而言,在docker-compose build與「手動」docker build之間構建的實際圖像之間沒有區別。

區別僅在於構建結果的命名/標記,其中docker-compose會自動爲您執行。 除此之外,docker-compose的構建在幕後並沒有什麼不同,只是一般的docker build的包裝。

+0

但我確實看到了生成圖像之間的差異。作爲我的dockerfile的一部分,我做了一個「npm install」來下載所有的依賴關係。 使用「docker build」構建的圖像全部下載了「npm_modules」,而使用「docker-compose up」生成的圖像具有空的「npm_modules」文件夾。 – SudheerKovalam

+0

工作方式肯定有不同。在我的項目中,docker build可以工作,但是docker-compose build會給出一些錯誤。關鍵是如果一個人工作,另一個人不需要工作。 – GiriB

+0

@GiriB將很高興知道錯誤:)在這種情況下,很有可能你的'docker-compose.yml'有什麼問題。 –

1

除命名區別外,如果構建的參數不同,則可能會在結果圖像中產生差異:docker-compose.yml的build:部分和docker build命令的命令行參數。 例如,--build-args可以不同。

相關問題