HashiCorp Learn Docker镜像是用于构建和本地开发HashiCorp学习平台(learn.hashicorp.com)的容器化解决方案。该镜像封装了平台运行所需的全部依赖环境,允许开发者在无需本地配置Node.js的情况下快速搭建开发环境,支持内容预览、热重载及静态站点生成,主要用于平台内容的本地开发、测试和构建。
通过预构建镜像可快速启动开发环境,适用于常规内容开发:
bash# 拉取并运行预构建镜像(映射3000端口,挂载项目目录) docker run -it -p 3000:3000 -v $(pwd):/app hashicorp/learn:latest
参数说明:
-p 3000:3000:将容器3000端口映射到本地,用于访问开发服务-v $(pwd):/app:挂载本地项目目录到容器,实现文件实时同步-it:交互式终端,支持日志输出和Ctrl+C终止当修改package.json等依赖文件时,需重新构建本地镜像:
bash# 构建本地镜像(基于项目Dockerfile) docker build -t learn-website-local . # 使用本地镜像启动开发服务 docker run -it -p 3000:3000 -v $(pwd):/app learn-website-local
服务启动后,通过以下地址访问本地平台:
http://localhost:3000/consul对应Consul课程/consul/getting-started/install内容文件按以下层次组织:
pages/ └── {product}/ # Curriculum级目录(如consul/、terraform/) ├── {trackName}/ # Track级目录(可多层嵌套,构成Track名称) │ └── {topic}.mdx # Topic文件 └── __shared__/ # 跨Track共享的Topic目录
示例解析:
pages/consul/advanced/advanced-operations/autopilot.mdx
consul/:Curriculum(课程)advanced/advanced-operations/:Track(轨道)autopilot.mdx:Topic(主题页面)5.3.1 Markdown样式指南
遵循https://github.com/hashicorp/engineering-docs/blob/master/writing/markdown.md%EF%BC%8C%E9%87%87%E7%94%A8CommonMark%E8%A7%84%E8%8C%83%EF%BC%8C%E6%94%AF%E6%8C%81%EF%BC%9A
5.3.2 页面编写(.mdx文件)
创建扩展名为.mdx的文件(仅允许单个扩展名),路径即URL路由(如pages/hello/world.mdx对应/hello/world)。文件需包含YAML前置元数据(Frontmatter),必填项:
yaml--- name: "页面标题" # HTML标题 content_length: 5 # 预计阅读时间(分钟,可通过`npm run estimate-reading-times`自动生成) id: "unique-topic-id" # 用于课程关联的唯一标识 products_used: ["consul"] # 涉及的HashiCorp产品列表 description: "页面简短描述" # 用于元数据和课程列表展示 level: "getting-started" # 内容级别,可选:getting-started/operations-and-development ---
5.3.3 添加到课程
需在data/{product}.yml中配置Topic与Track的关联,示例:
yaml# data/consul.yml tracks: - name: "Getting Started" id: getting-started topics: - install # 对应Topic的id字段 - configure - autopilot # 关联pages/consul/getting-started/autopilot.mdx
支持在同一产品的多个Track中共享Topic,步骤如下:
创建共享目录:在pages/{product}/下创建__shared__目录
bashmkdir pages/terraform/__shared__
编写共享Topic:在__shared__目录中创建.mdx文件,文件名建议与id一致
mdx# pages/terraform/__shared__/reference-architecture.mdx --- id: reference-architecture # 共享标识,用于Track引用 level: Implementation products_used: ["terraform"] # 其他元数据... ---
关联到Track:在data/{product}.yml的多个Track中引用该id
yaml# data/terraform.yml tracks: - name: "Day One" topics: [setup, reference-architecture] # 引用共享Topic - name: "Operations" topics: [scale, reference-architecture] # 同一Topic关联到另一Track
创建符号链接:在各Track目录中创建指向共享文件的符号链接
bash# 示例:为Day One Track创建链接 cd pages/terraform/day-one ln -s ../__shared__/reference-architecture.mdx reference-architecture.mdx
bashgit clone -c core.symlinks=true https://github.com/hashicorp/learn.git
Percy用于检测UI视觉变化,仅在分支名以run-percy开头时触发(如run-percy.update-style),流程建议:
run-percy-catchup分支运行Percy,批准历史变更run-percy.feature-name),获取无干扰的差异结果权限说明:需通过#team-mktg-webdev申请Percy访问权限
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务