跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Docker Hub
”︁(章节)
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= Docker Hub = '''Docker Hub''' 是 Docker 官方提供的云端容器镜像仓库服务,是 [[Docker]] 生态系统的核心组件之一。它为开发者提供了存储、分发和管理 Docker 镜像的平台,支持公共和私有仓库,并集成了自动化构建、安全扫描和团队协作等功能。无论是个人开发者还是企业团队,都可以通过 Docker Hub 高效地共享和部署容器化应用。 == 概述 == Docker Hub 类似于代码托管平台(如 GitHub),但专注于容器镜像的管理。它的主要功能包括: * '''镜像存储与分发''':托管公共和私有 Docker 镜像。 * '''自动化构建''':通过关联代码仓库(如 GitHub、Bitbucket)自动构建镜像。 * '''安全扫描''':检测镜像中的漏洞。 * '''团队协作''':支持多用户管理和权限控制。 == 核心功能 == === 公共与私有仓库 === Docker Hub 提供两种类型的仓库: * '''公共仓库'''(Public Repositories):镜像可被任何人拉取,适合开源项目。 * '''私有仓库'''(Private Repositories):镜像仅对授权用户可见,适合企业或私有项目。 === 镜像拉取与推送 === 通过 <code>docker pull</code> 和 <code>docker push</code> 命令与 Docker Hub 交互。 ==== 拉取镜像 ==== <syntaxhighlight lang="bash"> # 从 Docker Hub 拉取官方 Nginx 镜像 docker pull nginx </syntaxhighlight> 输出示例: <pre> Using default tag: latest latest: Pulling from library/nginx ... Status: Downloaded newer image for nginx:latest </pre> ==== 推送镜像 ==== 首先登录 Docker Hub,然后为本地镜像打标签并推送: <syntaxhighlight lang="bash"> # 登录 Docker Hub docker login # 为本地镜像打标签(格式:<Docker Hub 用户名>/<仓库名>:<标签>) docker tag my-image username/my-repo:v1 # 推送镜像 docker push username/my-repo:v1 </syntaxhighlight> === 自动化构建 === Docker Hub 支持通过关联代码仓库自动构建镜像。以下是一个典型的流程: 1. 在 Docker Hub 创建仓库并关联 GitHub/Bitbucket 项目。 2. 配置 <code>Dockerfile</code> 和构建规则。 3. 代码提交后触发自动构建。 示例 <code>Dockerfile</code>: <syntaxhighlight lang="dockerfile"> FROM alpine:latest RUN apk add --no-cache python3 COPY app.py /app/ CMD ["python3", "/app/app.py"] </syntaxhighlight> == 实际案例 == === 案例 1:部署 WordPress === 通过 Docker Hub 快速部署 WordPress: <syntaxhighlight lang="bash"> # 拉取 WordPress 和 MySQL 镜像 docker pull wordpress docker pull mysql:5.7 # 启动容器 docker run --name db -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7 docker run --name wp --link db:mysql -p 8080:80 -d wordpress </syntaxhighlight> === 案例 2:共享自定义镜像 === 开发者将自定义 Python 应用镜像推送到 Docker Hub: 1. 编写 <code>Dockerfile</code>: <syntaxhighlight lang="dockerfile"> FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD ["python", "app.py"] </syntaxhighlight> 2. 构建并推送: <syntaxhighlight lang="bash"> docker build -t username/my-python-app . docker push username/my-python-app </syntaxhighlight> == 安全最佳实践 == * 使用官方镜像(如 <code>nginx</code> 而非非官方 <code>someuser/nginx</code>)。 * 定期扫描镜像漏洞: <syntaxhighlight lang="bash"> docker scan nginx </syntaxhighlight> * 为私有仓库配置访问权限。 == 高级功能 == === Webhooks === 通过 Webhooks 在镜像推送时触发外部服务(如 CI/CD 流水线)。 === 速率限制 === 匿名用户有拉取限制(如 100 次/6 小时),认证用户可提升限额。 === 组织管理 === 企业可通过 Organizations 管理团队权限和私有仓库。 == 与其他工具集成 == Docker Hub 可与以下工具协同工作: * '''Kubernetes''':直接从 Hub 拉取镜像部署集群。 * '''CI/CD 工具'''(如 Jenkins、GitHub Actions):在流水线中推送/拉取镜像。 <mermaid> graph LR A[开发者] -->|推送镜像| B[Docker Hub] B -->|拉取镜像| C[生产服务器] B -->|拉取镜像| D[测试环境] </mermaid> == 数学表示(可选) == 镜像分层存储的校验和计算: <math> \text{SHA256} = \text{hash}(layer_1 + layer_2 + ... + layer_n) </math> == 总结 == Docker Hub 是容器化开发的核心枢纽,简化了镜像的存储、分发和协作。通过掌握其功能,开发者能更高效地构建和部署应用。 [[Category:集成部署]] [[Category:Docker]] [[Category:Docker生态系统]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)