Docker 快速入門(二) 構建並執行您的映象

2022-01-14 19:46:27 字數 2601 閱讀 3481

完成第一部分的情況介紹和安裝

現在您已經安裝了開發環境,可以開始開發容器化的應用程式了。一般來說,開發工作流是這樣的:

首先建立 docker 映象,為應用程式的每個元件建立和測試單獨的容器。

將容器和支援基礎設施(supporting infrastructure)組裝成乙個完整的應用程式。

測試、共享並部署完整的容器化應用程式。

在本教程的這一階段,讓我們集中討論此工作流的第一步:建立容器將基於的映象。請記住,docker 映象捕獲您的容器化程序將在其中執行的私有檔案系統;您需要建立乙個映象,其中僅包含應用程式執行所需的內容。

如果您使用的是 git,您可以從github轉殖示例專案:

git clone
curl.exe -lo /archive/master.zip

tar.exe xf master.zip

curl -lo /archive/master.zip

unzip master.zip

有關公告欄應用程式中使用的 dockerfile 的更多資訊,請參閱 dockerfile 示例。

現在您已經有了一些源**和 dockerfile,是時候構建您的第乙個映象了,並確保從映象中啟動的容器按預期工作。

docker build --tag bulletinboard:1.0 .
您將看到 docker 一步步完成 dockerfile 中的每條指令,並在此過程中構建您的映象。如果成功,構建過程應該以一條訊息successfully tagged bulletinboard:1.0結束。

windows 使用者:

本例使用 linux 容器。右鍵單擊系統托盤中的 docker 圖示,然後單擊switch to linux containers,確保您的環境正在執行 linux 容器。不必擔心——本教程中的所有命令對於 windows 容器工作方式完全一樣。

在執行映象後,您可能會收到一條標題為「安全警告」的訊息,提示正在為新增到映象中的檔案設定讀、寫和執行許可權。在本示例中,我們不處理任何敏感資訊,因此可以忽略本示例中的警告。

執行以下的命令來啟動基於新映象的乙個容器:

docker run --publish 8000:8080 --detach --name bb bulletinboard:1.0
這裡有幾個常見的標記:

在瀏覽器中訪問您的應用程式,位址是 localhost:8000。您應該會看到您的公告欄應用程式啟動並執行了。在此步驟中,您通常會盡一切可能確保容器按照預期的方式工作;例如,現在是執行單元測試的時候了。

一旦您確信您的公告欄容器工作正常,您可以刪除它:

docker rm --force bb
--force選項會停止正在執行的容器,因此可以將其刪除。 如果您先用docker stop bb停止執行的容器,那麼您不需要使用--force來刪除它。

編寫 dockerfile 是容器化乙個應用程式的第一步。您可以將這些 dockerfile 命令看作是如何構建映象的逐步配方。公告欄應用程式中的 dockerfile 是這樣的:

# 使用官方映象作為父映象。

from node:current-slim

# 設定工作目錄。

# 將檔案從主機複製到當前位置。

copy package.json .

# 在映象檔案系統中執行該命令。

run npm install

# 通知 docker 容器在執行時監聽指定的埠。

expose 8080

# 在容器中執行指定的命令。

cmd [ "npm", "start" ]

# 將應用程式的其餘源**從主機複製到映象檔案系統。

copy . .

本例中定義的 dockerfile 執行以下步驟:

您可以看到,這些步驟與您在主機上設定和安裝應用程式時所採取的步驟基本相同。但是,將這些捕獲為 dockerfile,允許您在乙個可移植的、獨立的 docker 映象中做同樣的事情。

上面的步驟構建了映象的檔案系統,但是 dockerfile 中還有其他行。

cmd指令是在映象中指定一些元資料的第乙個示例,這些元資料描述如何基於此映象執行容器。在本例中,它表示此映象要支援的容器化程序是npm start

expose 8080通知 docker 容器在執行時監聽埠 8080。

上面的內容是組織乙個簡單 dockerfile 的好方法;始終從from命令開始,按照它的步驟構建您的私有檔案系統,並以任何元資料指定結束。還有更多的 dockerfile 指令,而不僅僅是您在上面看到幾個。有關完整列表,請參閱 dockerfile 參考。

作者 : docker 官網

譯者 : 技術譯民

出品 : 技術譯站

Docker快速入門(二)

1 啟動 重啟docker systemctl start docker systemctl restart docker 修改配置檔案後重啟docker systemctl daemon reload systemctl restart docker2 停止docker systemctl sto...

Docker快速入門

本指南適用於開發環境,如果您打算在生產環境中執行eosio,請考慮構建eosio 先決條件 第1步 提取映象 eosio dev docker映像是為本地開發而設計的eosio軟體的編譯版本。從儲存庫中提取映象 docker pull eosio eos dev並啟動eosio節點 docker r...

Docker 快速入門

docker 是乙個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到乙個可移植的容器中,然後發布到任何流行的 linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。在本場 chat 中你可以學到的 什麼是容器 docker 為什麼這麼火 docker 在網際...