You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行vhosts时遇Docker错误:镜像引用格式无效,仓库名需小写

问题分析与解决

报错根源

你执行的docker run命令参数顺序错误:-e(环境变量参数)必须放在镜像名称之前,你把镜像名jwilder/nginx-proxy放在了-e后面,导致Docker误将VIRTUAL_HOST=myadd.dev识别为镜像名,而其中的大写字母违反了镜像名必须小写的规则,触发报错。

正确命令示例

由于你已经通过docker-compose启动了jwilder/nginx-proxy容器(容器ID:b1467ba0f2ae),无需重复启动它。如果要新增一个绑定myadd.dev域名的服务容器,正确的docker run命令格式应为:

docker run -e VIRTUAL_HOST=myadd.dev [你的服务镜像名]

替换[你的服务镜像名]为你实际要部署的业务服务镜像(比如nginx、php-fpm等)。

更规范的扩展方式(推荐)

从你的docker-compose.yml配置来看,已有一套基于nginx-proxy的本地反向代理环境。新增myadd.dev服务更推荐通过修改docker-compose配置来实现,避免零散管理容器:

修改后的docker-compose.yml:

version: '2'
services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - 80:80
      - 443:443
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ~/.certs:/etc/nginx/certs # 建议用通配符域名SSL证书简化本地流程,比如localhost.key和localhost.crt
  nginx-localhost:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: nginx-localhost
    volumes:
      - ~/Sites:/usr/share/nginx/html:ro
    environment:
      - VIRTUAL_HOST=localhost
      - HTTPS_METHOD=noredirect # 若存在自签名证书,避免强制HTTPS重定向
  # 新增myadd.dev服务
  nginx-myadd:
    build:
      context: .
      dockerfile: Dockerfile # 可根据实际需求调整镜像或构建规则
    container_name: nginx-myadd
    volumes:
      - ~/Sites/myadd:/usr/share/nginx/html:ro # 挂载对应站点目录
    environment:
      - VIRTUAL_HOST=myadd.dev
      - HTTPS_METHOD=noredirect

networks:
  default:
    external:
      name: local-nginx-rproxy

修改后执行以下命令启动新增服务:

docker-compose up -d

最后在本地hosts文件中添加解析:

127.0.0.1 myadd.dev

内容的提问来源于stack exchange,提问作者woninana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 20:35:14