位置:首页 > PHP > Docker私有仓库拉取Hyperf镜像的单机部署教程

Docker私有仓库拉取Hyperf镜像的单机部署教程

时间:2026-08-20  |  作者:实验室老王  |  阅读:0

单机部署Docker私有仓库拉取Hyperf镜像的关键是:能推得进、拉得出、存得住、信得过;需挂载宿主机目录实现持久化,配置insecure-registries信任HTTP仓库,打标签后推送并验证,确保本地可拉取运行。

服务器Docker私有仓库拉取Hyperf镜像单机部署

服务器上用 Docker 搭建私有仓库来拉取 Hyperf 镜像,单机部署的关键是:能推得进、拉得出、存得住、信得过。

不建议直接用默认容器内存储或 HTTP 明文方式,尤其在生产或团队协作场景下。

基础仓库启动(带持久化)

Registry 默认把镜像存在容器里,重启就丢。必须挂载宿主机目录

  • 创建存储目录:mkdir -p /data/registry
  • 启动命令(端口 5000,自动重启):
    docker run -d
    --name registry
    -p 5000:5000
    --restart=always
    -v /data/registry:/var/lib/registry
    registry:2.8.1

启动后可先验证服务是否正常运行。

  • curl http://localhost:5000/v2/ 应返回空 JSON {}
  • /v2/_catalog 返回当前镜像列表,初始为空

推送 Hyerf 镜像到私有仓库

Hyperf 最新镜像(如 hyperf/hyperf:8.2-alpine)需要先拉取,再重打标签,适配私有仓库地址。

  • 拉取原镜像:docker pull hyperf/hyperf:8.2-alpine
  • 打标签(格式:仓库地址:端口/命名空间/镜像名:tag):
    docker tag hyperf/hyperf:8.2-alpine localhost:5000/myapp/hyperf:8.2-alpine
  • 推送:docker push localhost:5000/myapp/hyperf:8.2-alpine

常见报错说明

如果出现 unauthorized: authentication required 这个报错,通常就意味着认证没有开启。

如果看到 http: server ga ve HTTP response to HTTPS client,问题则出在客户端并不信任 HTTP 仓库。这时需要在 Docker 守护进程里配置允许 insecure registry。

Docker 客户端信任配置(关键一步)

现代 Docker 默认拒绝 HTTP 私有仓库。

单机部署若用 localhost:5000,需在宿主机的 Docker 配置中显式声明为不安全源:

  • 编辑 /etc/docker/daemon.json(无则新建):
    { "insecure-registries": ["localhost:5000"] }
  • 重启 Docker:sudo systemctl restart docker
  • 确认生效:docker info | grep -A 1 "Insecure Registries"

注意:此配置仅适用于内网或可信单机环境;跨主机或生产环境务必启用 HTTPS(自签名证书即可),否则无法被其他节点识别。

从私有仓库拉取并运行 Hyperf

推送成功后,在同一台服务器上可直接拉取使用:

  • 拉取:docker pull localhost:5000/myapp/hyperf:8.2-alpine
  • 运行测试:
    docker run --rm -it localhost:5000/myapp/hyperf:8.2-alpine php --version
  • 若用于实际项目,通常还需挂载代码目录、配置文件和启动命令,例如:
    docker run -d
    --name hyperf-app
    -p 9501:9501
    -v $(pwd)/app:/app
    localhost:5000/myapp/hyperf:8.2-alpine
    php /app/bin/hyperf.php start

流程价值

整个流程无需公网依赖,镜像版本可控。

适合 CI/CD 流水线中构建、推送、部署一体化闭环。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多