Docker Hub 快速入门
Docker Hub 提供了一个庞大的预构建镜像和资源库, 加快开发工作流程并缩短设置时间。您可以在此基础上进行构建 来自 Docker Hub 的预构建镜像,然后使用存储库共享和 与您的团队或数百万其他开发人员分发您自己的镜像。
本指南介绍如何查找和运行预构建的镜像。然后它会引导您 通过创建自定义镜像并通过 Docker Hub 共享它。
先决条件
第 1 步:在 Docker Hub 的库中查找镜像
您可以在 Docker Hub 本身的 Docker Desktop 中搜索内容
Dashboard 的 Dashboard 或使用 CLI 命令。在 Docker Hub 上搜索
本身提供了最多的选项来探索内容。docker search
要在 Docker Hub 上搜索或浏览内容:
在 Explore (浏览) 页面上,您可以按目录或类别浏览,也可以使用搜索 以快速查找内容。
在 Categories (类别) 下,选择 Web 服务器。
显示结果后,您可以使用 filters 的 Filters。
在筛选条件中,选择 Docker Official Image(Docker 官方镜像)。
按可信内容过滤可确保您只看到高质量、安全的 由 Docker 和经过验证的发布合作伙伴策划的镜像。
在结果中,选择 nginx 镜像。
选择镜像将打开镜像的页面,您可以在其中了解有关操作方法的更多信息 以使用镜像。在该页面上,您还可以找到用于 拉取镜像。
docker pull
现在您已经找到了一个镜像,是时候在您的设备上拉取并运行它了。
第 2 步:从 Docker Hub 拉取并运行镜像
在您的终端中,执行以下命令,拉取并运行 Nginx 镜像。
$ docker run -p 8080:80 --rm nginx
该命令会自动拉取并运行镜像,而不使用 需要先运行。要了解有关该命令及其 选项,请参阅
docker run
CLI 参考。运行 命令,您应该会看到类似于以下内容的输出。docker run
docker pull
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://localhost:8080 以查看默认 Nginx 页面并验证容器是否正在运行。
在终端中,按 Ctrl+C 停止容器。
您现在已经运行了一个 Web 服务器,无需任何设置或配置,所有这些都来自 single 命令。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 共享静态网站。
运行以下命令以构建您的镜像。替换为您的 Docker ID。
<YOUR-USERNAME>
$ docker build -t <YOUR-USERNAME>/nginx-custom .
此命令会构建您的镜像并对其进行标记,以便 Docker 了解哪个 存储库将其推送到 Docker Hub 中。要了解有关 command 和 其选项,请参阅
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
执行以下命令,测试您的镜像。替换为 您的 Docker ID。
<YOUR-USERNAME>
$ docker run -p 8080:80 --rm <YOUR-USERNAME>/nginx-custom
访问 https://localhost:8080 查看页面。你 应该看到 。
Hello world from Docker!
在终端中,按 Ctrl+C 停止容器。
登录到 Docker Desktop。您必须先登录,然后才能将镜像推送到 Docker Hub 的 Docker Hub 中。
执行以下命令,将镜像推送到 Docker Hub。替换为您的 Docker ID。
<YOUR-USERNAME>
$ 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 并登录。
登录后,您应该位于 Repositories (存储库) 页面上。如果没有,那就去 添加到 Repositories (存储库) 页面。
找到 nginx-custom 存储库并选择该行。
选择存储库后,您应该会看到以下的更多详细信息和选项 您的存储库。
您现在已经验证了您的仓库存在于 Docker Hub 上,并且您已经 发现了 IT 的更多选项。查看后续步骤,详细了解 这些选项。
后续步骤
添加仓库信息,帮助用户查找和使用 您的镜像。