基礎原理:容器技术/Docker/Concepts/container:修订间差异

来自開源之海
Johnson留言 | 贡献
无编辑摘要
标签2017年版源代码编辑
Johnson留言 | 贡献
无编辑摘要
第36行: 第36行:
  <code>docker ps</code>
  <code>docker ps</code>
您將看到類似以下的輸出:
您將看到類似以下的輸出:
<code>CONTAINER ID  IMAGE                     COMMAND                 CREATED         STATUS         PORTS                     NAMES
<code><div>
a1f7a4bb3a27  docker/welcome-to-docker  "/docker-entrypoint.…"  11 seconds ago  Up 11 seconds  0.0.0.0:8080->80/tcp      gracious_keldysh</code>
CONTAINER ID  IMAGE COMMAND CREATED STATUS PORTS NAMES
a1f7a4bb3a27  docker/welcome-to-docker  "/docker-entrypoint.…"  11 seconds ago  Up 11 seconds  0.0.0.0:8080->80/tcp      gracious_keldysh</div></code>
 


此容器執行一個網頁伺服器,用以顯示一個簡單的網站。當處理較複雜的專案時,您會將不同的部分分別在不同的容器中執行。例如,為<code>frontend</code>,<code>backend</code>,和<code>database</code>.
此容器執行一個網頁伺服器,用以顯示一個簡單的網站。當處理較複雜的專案時,您會將不同的部分分別在不同的容器中執行。例如,為<code>frontend</code>,<code>backend</code>,和<code>database</code>.

2026年5月8日 (五) 16:40的版本

說明

假設你正在開發一款功能強大的網頁應用程式,它包含三個主要組件 - 一個 React 前端、一個 Python API 以及一個 PostgreSQL 資料庫。若您想參與此專案,必須安裝 Node、Python 和 PostgreSQL.

您如何確保自己使用的版本與團隊中其他開發人員、CI/CD 系統,或是生產環境中使用的版本一致?

您如何確保應用程式所需的 Python(或 Node、資料庫)版本不會受到電腦上現有軟體的影響?您如何處理潛在的衝突??

容器登場!

什麼是容器?簡單來說,容器就是為應用程式的每個元件所建立的隔離進程。每個元件——無論是前端的 React 應用程式、Python API 引擎,還是資料庫——都在各自的隔離環境中運行,與機器上的其他一切完全隔離。

以下就是它們如此出色的原因。容器是:

  • 自包含。每個容器都具備運作所需的一切,無需依賴主機上預先安裝的任何依賴項.
  • 隔離。由於容器在隔離環境中運行,因此對主機和其他容器的影響極小,從而提升了應用程式的安全性.
  • 獨立運作。每個容器皆獨立管理。刪除其中一個容器不會影響其他容器.
  • 可攜式。容器可在任何地方運行!在您的開發機器上運行的容器,在資料中心或雲端任何地方都能以相同方式運作!

容器與虛擬機器的比較 (VMs)

不深入探討細節的話,虛擬機器(VM)是一個完整的作業系統,擁有自己的核心、硬體驅動程式、程式及應用程式。僅為了隔離單一應用程式而啟動虛擬機器,會造成相當大的系統負擔.

容器本質上是一個獨立的進程,其中包含其運行所需的所有檔案。若同時執行多個容器,它們將共用同一個核心,讓您能在更少的基礎設施上運行更多應用程式.

同時使用虛擬機器與容器 在許多情況下,您會看到容器與虛擬機器(VM)被併用。舉例來說,在雲端環境中,所配置的機器通常是虛擬機器。然而,與其為運行單一應用程式而配置一台機器,配備容器執行環境的虛擬機器可以同時運行多個容器化應用程式,從而提高資源利用率並降低成本.

試試看

在這項實作中,您將了解如何透過 Docker CLI介面執行Docker容器. 請依照指示,使用命令列介面 (CLI) 執行容器:

  1. 開啟您的 CLI 終端機,並使用 docker run 命令:
$docker run -d -p 8080:80 docker/welcome-to-docker

此命令的輸出結果是完整的容器 ID. 恭喜!您剛啟動了第一個容器! 🎉

檢視正在執行的容器

您可以透過以下方式確認容器是否已啟動並正在運行: docker ps 命令:

docker ps

您將看到類似以下的輸出:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

a1f7a4bb3a27 docker/welcome-to-docker "/docker-entrypoint.…" 11 seconds ago Up 11 seconds 0.0.0.0:8080->80/tcp gracious_keldysh


此容器執行一個網頁伺服器,用以顯示一個簡單的網站。當處理較複雜的專案時,您會將不同的部分分別在不同的容器中執行。例如,為frontend,backend,和database.

提示

docker ps命令将显示 仅仅 运行的容器. 为查看停止的容器,请添加a-a标记去显示所有的容器: docker ps -a

访问前端

當您啟動容器時,您已將容器的一個埠對外公開至您的電腦。您可以將此視為建立了一項設定,讓您能夠透過容器的隔離環境進行連線.

對於此容器,前端可透過端口 8080. 要開啟該網站,請點選 Port(s) 容器的欄位,或造訪 http://localhost:8080 在您的瀏覽器中.

停止您的容器

docker/welcome-to-docker 容器會持續執行,直到您停止它為止。您可以使用 docker stop 命令.

  1. 运行 docker ps 取得容器的 ID
  2. 請提供容器的ID或名稱至 docker stop 命令: docker stop <容器 ID>

提示 透過 ID 引用容器時,無需提供完整的 ID。只需提供足以確保其唯一性的部分 ID 即可。例如,可透過執行以下指令來停止前一個容器:

docker stop a1f