Docker Hub 快速入門

Docker Hub 提供了大量的預先建置映像檔和資源程式庫,可加速開發工作流程並縮短設定時間。您可以基於 Docker Hub 中的預先建置映像檔進行建置,然後使用儲存庫與您的團隊或數百萬其他開發人員分享和發佈您自己的映像檔。

本指南將示範如何尋找和執行預先建置的映像檔。 接著,它將引導您建立自訂映像檔並透過 Docker Hub 分享它。

先決條件

  • 下載並安裝 Docker
  • 建立 Docker 帳戶步驟 1:在 Docker Hub 的程式庫中尋找映像檔

    您可以在 Docker Hub 本身、Docker Desktop 儀表板中或使用 docker search CLI 命令搜尋內容。 在 Docker Hub 本身搜尋提供了最多探索內容的選項。

    若要在 Docker Hub 上搜尋或瀏覽內容

    1. 瀏覽至 Docker Hub 探索頁面步驟 2:從 Docker Hub 拉取並執行映像檔

      1. 在您的終端機中,執行以下命令以拉取並執行 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
        ...
        
      2. 瀏覽 https://127.0.0.1:8080步驟 3:建置映像檔並將其推送至 Docker Hub

        1. 建立 Dockerfile 以指定您的應用程式

          FROM nginx
          RUN echo "<h1>Hello world from Docker!</h1>" > /usr/share/nginx/html/index.html

          此 Dockerfile 擴充了 Docker Hub 中的 Nginx 映像檔以建立一個簡單的網站。 只需幾行程式碼,您就可以使用 Docker 輕鬆設定、自訂和分享靜態網站。

        2. 執行以下命令以建置您的映像檔。 將 <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
          
        3. 執行下列指令來測試您的映像檔。請將 <YOUR-USERNAME> 替換為您的 Docker ID。

          $ docker run -p 8080:80 --rm <YOUR-USERNAME>/nginx-custom
          
        4. 瀏覽 https://127.0.0.1:8080 來檢視頁面。您應該會看到 Hello world from Docker!

        5. 在終端機中,按下 CTRL+C 以停止容器。

        6. 登入 Docker Desktop。您必須先登入,才能將映像檔推送到 Docker Hub。

        7. 執行下列指令,將您的映像檔推送到 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 上檢視您的儲存庫並探索選項

        1. 前往 Docker Hub 並登入。

          登入後,您應該會 berada di 頁面**儲存庫**。如果沒有,請前往 儲存庫 頁面。

        2. 找到 **nginx-custom** 儲存庫並選取該列。

          選取儲存庫後,您應該會看到更多儲存庫的詳細資訊和選項。

        您現在已驗證您的儲存庫存在於 Docker Hub 上,並且已探索更多選項。檢視後續步驟以進一步了解其中一些選項。

        後續步驟

        新增 儲存庫資訊 以協助使用者尋找和使用您的映像檔。