Skip to content

Docker - Hub

Docker Hub 是 Docker 提供的默认且最大的基于云的registry service(注册表服务)。它是一个中心化的平台,用于查找、存储和分享 Docker images(镜像)。

Docker Hub 的主要特性包括:

  • **公共仓库(Public Repositories):**托管并公开分享你的镜像,使任何人都能访问。
  • **私有仓库(Private Repositories):**安全地存储专有或敏感镜像(免费计划有数量限制,付费计划数量更多)。
  • **官方镜像(Official Images):**由 Docker 和上游供应商为流行的软件(如 ubuntu、python、node、nginx、mysql)提供、精选和维护的镜像。
  • **验证发布者镜像(Verified Publisher Images):**由受信任的软件供应商提供并验证的镜像。
  • **社区镜像(Community Images):**由 Docker 社区共享的庞大镜像集合。
  • **自动化构建(Automated Builds):**当源代码仓库(如 GitHub 或 Bitbucket)推送更改时,自动从源代码构建镜像。
  • **Webhooks:**当镜像被推送到 Docker Hub 时,在其他服务中触发动作。
  • **组织与团队(Organizations & Teams):**为用户组管理对仓库的访问权限。

步骤 1: 注册 / 登录

你需要一个 Docker ID 来推送镜像或使用私有仓库。在 https://hub.docker.com/ 注册一个免费账户。

要从本地机器推送镜像,首先需要使用 Docker CLI(命令行界面)登录:

docker login

根据提示输入你的 Docker ID(用户名)和密码。

步骤 2: 查找镜像

你可以直接在 Docker Hub 网站或使用 CLI 搜索镜像:

# Search for images related to 'jenkins'
docker search jenkins

查找带有 OFFICIAL 或 VERIFIED PUBLISHER 标签的镜像,以获取可信来源。对于 Jenkins,官方镜像通常是 jenkins/jenkins。

步骤 3: 拉取镜像

使用 docker pull 命令下载镜像。如果你不指定注册表主机,Docker 会默认为 Docker Hub。

# Pull the Long-Term Support (LTS) version of the official Jenkins image
docker pull jenkins/jenkins:lts

步骤 4: 运行镜像

使用 docker run 命令从已拉取的镜像启动一个容器。请记住映射必要的端口。

# Run Jenkins container in detached mode, mapping ports, and naming it
docker run -d -p 8080:8080 -p 50000:50000 --name myjenkins jenkins/jenkins:lts

解释:

  • -d:以后台(分离)模式运行。
  • -p 8080:8080:将主机端口 8080 映射到容器端口 8080(Jenkins web UI)。
  • -p 50000:50000:将主机端口 50000 映射到容器端口 50000(用于 Jenkins agent 连接)。
  • --name myjenkins:为容器指定名称。
  • jenkins/jenkins:lts:要运行的镜像。

运行后,你通常可以通过 http://localhost:8080 访问 Jenkins 设置向导。

要在 Docker Hub 上分享你自己的自定义镜像:

  1. 在本地构建你的镜像(使用 docker build ...)。
  2. 使用你的 Docker Hub 用户名标记(tag)镜像:docker tag my-local-image:latest yourusername/my-repo-name:tag。
  3. 使用 docker login 登录。
  4. 推送标记好的镜像:docker push yourusername/my-repo-name:tag。

Docker Hub 是 Docker 生态系统的重要组成部分,用于发现、分发和管理容器镜像。