?搜索hello-world鏡像
docker search hello-world
拉去鏡像
docker pull hello-world
查看本地鏡像
docker images
運行鏡像
docker run hello-world
查看所有的容器
docker ps -a
查詢start狀態容器
docker ps
輸出介紹
- CONTAINER ID: 容器 ID。
- IMAGE: 使用的鏡像。
- COMMAND: 啟動容器時運行的命令。
- CREATED: 容器的創建時間。
- STATUS: 容器狀態。
- PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。
- NAMES: 自動分配的容器名稱。
?容器狀態
- created(已創建)
- restarting(重啟中)
- running 或 Up(運行中)
- removing(遷移中)
- paused(暫停)
- exited(停止)
- dead(死亡)
Docker架構
Docker 使用客戶端-服務器架構。Docker 客戶端與 Docker 守護進程通信,后者負責構建、運行和分發 Docker 容器的繁重工作。Docker 客戶端和守護進程可以在同一系統上運行,也可以將 Docker 客戶端連接到遠程 Docker 守護進程。Docker 客戶端和守護進程使用 REST API 通過 UNIX 套接字或網絡接口進行通信。另一個 Docker 客戶端是 Docker Compose,它允許您使用由一組容器組成的應用程序。
圖片來自官網
Docker 守護進程(Docker daemon)
Docker 守護進程 ( dockerd) 偵聽 Docker API 請求并管理 Docker 對象,例如映像、容器、網絡和卷。守護進程還可以與其他守護進程通信來管理 Docker 服務。
Docker 客戶端(Docker client)
Docker 客戶端 ( docker) 是許多 Docker 用戶與 Docker 交互的主要方式。當您使用諸如 之類的命令時docker run,客戶端會將這些命令發送到dockerd,由后者執行這些命令。該docker命令使用 Docker API。Docker 客戶端可以與多個守護進程通信。
Docker 桌面 (Docker Desktop)
Docker Desktop 是一款適用于 Mac、Windows 或 Linux 環境的易于安裝的應用程序,使您能夠構建和共享容器化應用程序和微服務。Docker Desktop 包括 Docker 守護進程 ( dockerd)、Docker 客戶端 ( docker)、Docker Compose、Docker Content Trust、Kubernetes 和 Credential Helper。
Docker 注冊表 (Docker registries)
Docker 注冊表存儲 Docker 鏡像。Docker Hub 是任何人都可以使用的公共注冊表,Docker 默認在 Docker Hub 上查找鏡像。可以運行自己的私人注冊表。
當您使用docker pull或docker run命令時,Docker 從您配置的注冊表中提取所需的映像。當您使用該docker push命令時,Docker 會將您的映像推送到您配置的注冊表。
Docker 對象(Docker objects)
當您使用 Docker 時,您正在創建和使用映像、容器、網絡、卷、插件和其他對象。
鏡像 (Images)
鏡像是一個只讀模板,包含創建 Docker 容器的說明。通常,一個圖像基于另一個圖像,并進行一些額外的自定。
可以創建自己的映像,也可以僅使用其他人創建并在注冊表中發布的映像。要構建您自己的映像,您可以使用簡單的語法創建一個 Dockerfile,用于定義創建映像并運行它所需的步驟。Dockerfile 中的每條指令都會在映像中創建一個層。當您更改 Dockerfile 并重建映像時,只會重建那些已更改的層。與其他虛擬化技術相比,這就是映像如此輕量、小型且快速的部分原因。
容器 (Containers)
容器是鏡像的可運行實例。您可以使用 Docker API 或 CLI 創建、啟動、停止、移動或刪除容器。您可以將容器連接到一個或多個網絡,為其附加存儲,甚至可以根據其當前狀態創建一個新映像。
默認情況下,容器與其他容器及其主機相對較好地隔離。您可以控制容器的網絡、存儲或其他底層子系統與其他容器或主機的隔離程度。
容器由其映像以及您在創建或啟動它時提供給它的任何配置選項來定義。當容器被刪除時,任何未存儲在持久存儲中的狀態更改都會消失。