2017-05-31 35 views
1

如果我在Docker鏡像中運行sudo apt-get update並將其作爲容器運行,那麼是否還需要在計算機上sudo apt-get update?我仍然試圖圍繞Docker的工作原理,因爲我的大腦的一部分告訴我,在Docker容器中運行的所有東西都依賴於Docker容器中的所有內容,所以沒有必要sudo apt-get update機器也是這樣,我的大腦的另一部分是告訴我這是不對的,所以我現在很困惑。如果我在Docker鏡像中運行sudo apt-get update並將其作爲容器運行,那麼是否還需要在計算機上sudo apt-get update?

回答

0

每當你在泊塢窗container或您的Dockerfile內運行apt-get update它實際上是創造它是將運行在特定的空間中的所有命令只在不影響你的物理服務器/環境只有容器和你的物理服務器自己獨立的空間/環境是分享相同的kernel。因此,如果您運行的是apt-get update或其他任何命令,它只會在您正在創建的泊塢窗容器或泊塢窗圖像中運行。

我強烈建議你閱讀這個答案,以便你對碼頭的理解。 docker and virtual machine

希望這會幫助你!

謝謝!

0

這些依賴關係並不像您所期望的那樣與您的docker主機相連(只要您沒有爲其安裝任何卷)。

您可以使用幾行代碼驗證您的建議。讓我們使用普通的Ubuntu的鏡像:

docker run --rm ubuntu apt-get install git 

導致E: Unable to locate package git。這是因爲軟件包從未使用apt-get update更新過。

如果我們提供由這幾行的Dockerfile:

FROM ubuntu 
RUN apt-get update 

,並建立它得到一個新的形象

docker build -t myubuntu . 

我們可以執行這樣

docker run --rm myubuntu apt-get install git 
新形象

然後嘗試從官方存儲庫安裝git,因爲之前的映像已經執行編號apt-get update

但是,我不會建議在容器中通過apt-get過期的圖像已過時。

相關問題