Docker Hub 快速入门

Docker Hub 提供了一个庞大的预构建镜像和资源库,可以加速开发工作流程并减少设置时间。您可以在 Docker Hub 中的预构建镜像基础上进行构建,然后使用 Repository 与您的团队或数百万其他开发者共享和分发您自己的镜像。

本指南将向您展示如何查找和运行预构建镜像。然后,它将引导您创建自定义镜像并通过 Docker Hub 共享。

先决条件

步骤 1:在 Docker Hub 的 Library 中查找镜像

您可以在 Docker Hub 本身、Docker Desktop 仪表盘或使用 CLI 搜索内容。

在 Docker Hub 上搜索或浏览内容


  1. 导航到 Docker Hub 探索页面

    探索页面上,您可以按 Catalog 或类别浏览,或使用搜索功能快速查找内容。

  2. 类别下,选择 Web 服务器

    结果显示后,您可以使用页面左侧的筛选器进一步筛选结果。

  3. 在筛选器中,选择 Docker 官方镜像

    通过信任内容进行筛选可确保您只能看到由 Docker 和验证发布合作伙伴精心策划的高质量、安全镜像。

  4. 在结果中,选择 nginx 镜像。

    选择该镜像会打开该镜像的页面,您可以在其中了解更多关于如何使用该镜像的信息。在该页面上,您还会找到用于拉取该镜像的 docker pull 命令。

  1. 打开 Docker Desktop 仪表盘。

  2. 选择 Docker Hub 视图。

    Docker Hub 视图中,您可以按 Catalog 或类别浏览,或使用搜索功能快速查找内容。

  3. 清空搜索框,然后选择搜索

    搜索结果显示在搜索框旁边,并带有附加筛选器。

  4. 选择搜索筛选器图标,然后选择 Docker 官方镜像Web 服务器

  5. 在结果中,选择 nginx 镜像。

  1. 打开终端窗口。

    提示

    Docker Desktop 仪表盘包含一个内置终端。在仪表盘底部,选择 >_ 终端以打开它。

  2. 在终端中,运行以下命令。

    $ docker search --filter is-official=true nginx
    

    与 Docker Hub 和 Docker Desktop 界面不同,您不能使用 docker search 命令按类别浏览。有关该命令的更多详细信息,请参阅 docker search


既然您找到了一个镜像,接下来就可以在您的设备上拉取并运行它了。

步骤 2:从 Docker Hub 拉取并运行镜像

您可以使用 CLI 或 Docker Desktop 仪表盘运行 Docker Hub 中的镜像。


  1. 在 Docker Desktop 仪表盘中,在 Docker Hub 视图中选择 nginx 镜像。有关更多详细信息,请参阅 步骤 1:在 Docker Hub 的 Library 中查找镜像

  2. nginx 屏幕上,选择运行

    如果镜像不存在于您的设备上,它将自动从 Docker Hub 拉取。拉取镜像可能需要几秒钟或几分钟,具体取决于您的连接。镜像拉取完成后,Docker Desktop 中会弹出一个窗口,您可以指定运行选项。

  3. 主机端口选项中,指定 8080

  4. 选择运行

    容器启动后会显示容器日志。

  5. 选择 8080:80 链接打开服务器,或在您的网络浏览器中访问 https://localhost:8080

  6. 在 Docker Desktop 仪表盘中,选择停止按钮停止容器。

  1. 打开终端窗口。

    提示

    Docker Desktop 仪表盘包含一个内置终端。在仪表盘底部,选择 >_ 终端以打开它。

  2. 在终端中,运行以下命令拉取并运行 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
    ...
    
  3. 访问 https://localhost:8080 以查看默认的 Nginx 页面并验证容器正在运行。

  4. 在终端中,按Ctrl+C 停止容器。


您现在无需任何设置或配置就运行了一个 Web 服务器。Docker Hub 提供对预构建、即用型容器镜像的即时访问,让您能够快速拉取并运行应用程序,而无需手动安装或配置软件。借助 Docker Hub 庞大的镜像库,您可以轻松尝试和部署应用程序,提高工作效率,并方便地试用新工具、设置开发环境或在现有软件基础上进行构建。

您还可以扩展 Docker Hub 中的镜像,从而快速构建和定制自己的镜像以满足特定需求。

步骤 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 中的哪个 Repository。要了解该命令及其选项的更多信息,请参阅 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://localhost: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 上查看您的 Repository 并探索选项

您可以在 Docker Hub 或 Docker Desktop 界面中查看您的 Docker Hub 仓库。


  1. 访问 Docker Hub 并登录。

    登录后,您应该会位于仓库页面。如果不是,请前往 仓库 页面。

  2. 找到 nginx-custom 仓库并选择该行。

    选择仓库后,您应该会看到仓库的更多详细信息和选项。

  1. 登录 Docker Desktop。

  2. 选择镜像视图。

  3. 选择镜像仓库选项卡。

    您的 Docker Hub 仓库列表将出现。

  4. 找到 nginx-custom 仓库,将鼠标悬停在该行上,然后选择 View in Hub(在 Hub 中查看)。

    Docker Hub 将打开,您可以查看有关镜像的更多详细信息。


您现在已经验证了您的仓库在 Docker Hub 上存在,并发现了更多选项。查看后续步骤以了解有关其中一些选项的更多信息。

后续步骤

添加仓库信息以帮助用户查找和使用您的镜像。

页面选项