Docker Hub 快速入門
Docker Hub 提供了大量的預構建映象和資源,加速了開發工作流程並減少了設定時間。您可以在 Docker Hub 的預構建映象基礎上進行構建,然後使用倉庫與您的團隊或數百萬其他開發者共享和分發您自己的映象。
本指南向您展示如何查詢和執行預構建映象。然後,它將引導您建立自定義映象並透過 Docker Hub 共享。
先決條件
步驟 1:在 Docker Hub 庫中查詢映象
您可以在 Docker Hub 本身、Docker Desktop 儀表板或使用 CLI 搜尋內容。
在 Docker Hub 上搜索或瀏覽內容
導航到 Docker Hub 探索頁面。
在**探索**頁面,您可以按目錄或類別瀏覽,或使用搜索快速查詢內容。
在**類別**下,選擇**Web 伺服器**。
結果顯示後,您可以使用頁面左側的篩選器進一步篩選結果。
在篩選器中,選擇**Docker 官方映象**。
透過可信內容進行篩選可確保您只看到由 Docker 和經過驗證的釋出合作伙伴精心策劃的高質量、安全映象。
在結果中,選擇 **nginx** 映象。
選擇映象將開啟映象頁面,您可以在其中瞭解更多關於如何使用該映象的資訊。在該頁面上,您還將找到用於拉取映象的 `docker pull` 命令。
開啟 Docker Desktop 儀表板。
選擇 **Docker Hub** 檢視。
在 **Docker Hub** 檢視中,您可以按目錄或類別瀏覽,或使用搜索快速查詢內容。
清空搜尋框,然後選擇**搜尋**。
搜尋結果顯示,搜尋框旁邊現在有額外的篩選器。
選擇搜尋篩選器圖示,然後選擇**Docker 官方映象**和**Web 伺服器**。
在結果中,選擇 **nginx** 映象。
開啟終端視窗。
提示Docker Desktop 儀表板包含一個內建終端。在儀表板底部,選擇**>_ 終端**開啟它。
在終端中,執行以下命令。
$ docker search --filter is-official=true nginx
與 Docker Hub 和 Docker Desktop 介面不同,您不能使用 `docker search` 命令按類別瀏覽。有關該命令的更多詳細資訊,請參閱 docker search。
現在您已經找到一個映象,是時候在您的裝置上拉取並執行它了。
步驟 2:從 Docker Hub 拉取並執行映象
您可以使用 CLI 或 Docker Desktop 儀表板從 Docker Hub 執行映象。
在 Docker Desktop 儀表板中,在 **Docker Hub** 檢視中選擇 **nginx** 映象。有關更多詳細資訊,請參閱 步驟 1:在 Docker Hub 庫中查詢映象。
在 **nginx** 螢幕上,選擇**執行**。
如果映象不存在於您的裝置上,它將自動從 Docker Hub 拉取。拉取映象可能需要幾秒鐘或幾分鐘,具體取決於您的連線。映象拉取後,Docker Desktop 中會出現一個視窗,您可以指定執行選項。
在**主機埠**選項中,指定 `8080`。
選擇執行。
容器啟動後會顯示容器日誌。
選擇 **8080:80** 連結開啟伺服器,或在網路瀏覽器中訪問 https://:8080。
在 Docker Desktop 儀表板中,選擇**停止**按鈕停止容器。
開啟終端視窗。
提示Docker Desktop 儀表板包含一個內建終端。在儀表板底部,選擇**>_ 終端**開啟它。
在終端中,執行以下命令以拉取並執行 Nginx 映象。
$ docker run -p 8080:80 --rm nginx
`docker run` 命令會自動拉取並執行映象,無需先執行 `docker pull`。要了解有關該命令及其選項的更多資訊,請參閱 `docker run` CLI 參考。執行該命令後,您應該會看到類似以下內容的輸出。
Unable to find image 'nginx:latest' locally latest: Pulling from library/nginx a480a496ba95: Pull complete f3ace1b8ce45: Pull complete 11d6fdd0e8a7: Pull complete f1091da6fd5c: Pull complete 40eea07b53d8: Pull complete 6476794e50f4: Pull complete 70850b3ec6b2: Pull complete Digest: sha256:28402db69fec7c17e179ea87882667f1e054391138f77ffaf0c3eb388efc3ffb Status: Downloaded newer image for nginx:latest /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh /docker-entrypoint.sh: Configuration complete; ready for start up 2024/11/07 21:43:41 [notice] 1#1: using the "epoll" event method 2024/11/07 21:43:41 [notice] 1#1: nginx/1.27.2 2024/11/07 21:43:41 [notice] 1#1: built by gcc 12.2.0 (Debian 12.2.0-14) 2024/11/07 21:43:41 [notice] 1#1: OS: Linux 6.10.11-linuxkit 2024/11/07 21:43:41 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576 2024/11/07 21:43:41 [notice] 1#1: start worker processes 2024/11/07 21:43:41 [notice] 1#1: start worker process 29 ...
訪問 https://:8080 檢視預設的 Nginx 頁面並驗證容器是否正在執行。
在終端中,按
Ctrl+C 停止容器。
您現在已經運行了一個網路伺服器,無需任何設定或配置。Docker Hub 提供了即時訪問預構建、即用型容器映象的功能,讓您可以快速拉取和執行應用程式,而無需手動安裝或配置軟體。藉助 Docker Hub 龐大的映象庫,您可以輕鬆嘗試和部署應用程式,提高生產力,並輕鬆試用新工具、設定開發環境或在現有軟體之上進行構建。
您還可以擴充套件 Docker Hub 中的映象,從而快速構建和自定義您自己的映象以滿足特定需求。
步驟 3:構建並推送映象到 Docker Hub
建立 Dockerfile 來指定您的應用程式
FROM nginx RUN echo "<h1>Hello world from Docker!</h1>" > /usr/share/nginx/html/index.html
此 Dockerfile 擴充套件了 Docker Hub 中的 Nginx 映象以建立一個簡單的網站。只需幾行程式碼,您就可以使用 Docker 輕鬆設定、自定義和共享靜態網站。
執行以下命令構建您的映象。將 `<YOUR-USERNAME>` 替換為您的 Docker ID。
$ docker build -t <YOUR-USERNAME>/nginx-custom .
此命令會構建您的映象並對其進行標記,以便 Docker 瞭解要將其推送到 Docker Hub 中的哪個倉庫。要了解有關該命令及其選項的更多資訊,請參閱 `docker build` CLI 參考。執行該命令後,您應該會看到類似以下內容的輸出。
[+] Building 0.6s (6/6) FINISHED docker:desktop-linux => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 128B 0.0s => [internal] load metadata for docker.io/library/nginx:latest 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [1/2] FROM docker.io/library/nginx:latest 0.1s => [2/2] RUN echo "<h1>Hello world from Docker!</h1>" > /usr/share/ 0.2s => exporting to image 0.1s => => exporting layers 0.0s => => writing image sha256:f85ab68f4987847713e87a95c39009a5c9f4ad78 0.0s => => naming to docker.io/mobyismyname/nginx-custom 0.0s
執行以下命令測試您的映象。將 `<YOUR-USERNAME>` 替換為您的 Docker ID。
$ docker run -p 8080:80 --rm <YOUR-USERNAME>/nginx-custom
訪問 https://:8080 檢視頁面。您應該會看到 `Hello world from Docker!`。
在終端中,按 CTRL+C 停止容器。
登入到 Docker Desktop。在將映象推送到 Docker Hub 之前,您必須先登入。
執行以下命令將您的映象推送到 Docker Hub。將 `<YOUR-USERNAME>` 替換為您的 Docker ID。
$ docker push <YOUR-USERNAME>/nginx-custom
注意您必須透過 Docker Desktop 或命令列登入到 Docker Hub,並且必須按照上述步驟正確命名您的映象。
此命令將映象推送到 Docker Hub,如果倉庫不存在則會自動建立。要了解有關該命令的更多資訊,請參閱 `docker push` CLI 參考。執行該命令後,您應該會看到類似以下內容的輸出。
Using default tag: latest The push refers to repository [docker.io/mobyismyname/nginx-custom] d0e011850342: Pushed e4e9e9ad93c2: Mounted from library/nginx 6ac729401225: Mounted from library/nginx 8ce189049cb5: Mounted from library/nginx 296af1bd2844: Mounted from library/nginx 63d7ce983cd5: Mounted from library/nginx b33db0c3c3a8: Mounted from library/nginx 98b5f35ea9d3: Mounted from library/nginx latest: digest: sha256:7f5223ae866e725a7f86b856c30edd3b86f60d76694df81d90b08918d8de1e3f size: 1985
現在您已經建立了一個倉庫並推送了您的映象,是時候檢視您的倉庫並探索其選項了。
步驟 4:在 Docker Hub 上檢視您的倉庫並探索選項
您可以在 Docker Hub 或 Docker Desktop 介面中檢視您的 Docker Hub 倉庫。
前往 Docker Hub 並登入。
登入後,您應該會進入**倉庫**頁面。如果不是,請轉到**倉庫**頁面。
找到 **nginx-custom** 倉庫並選擇該行。
選擇倉庫後,您應該會看到更多關於您的倉庫的詳細資訊和選項。
登入到 Docker Desktop。
選擇**映象**檢視。
選擇**Hub 倉庫**選項卡。
將顯示您的 Docker Hub 倉庫列表。
找到 **nginx-custom** 倉庫,將滑鼠懸停在該行上,然後選擇**在 Hub 中檢視**。
Docker Hub 將開啟,您將能夠檢視有關映象的更多詳細資訊。
您現在已驗證您的倉庫存在於 Docker Hub 上,並且您已發現了更多選項。檢視後續步驟以瞭解有關其中一些選項的更多資訊。
後續步驟
新增倉庫資訊以幫助使用者查詢和使用您的映象。