如何为多个DDEV容器修改phpMyAdmin端口并设置静态端口?
为DDEV中每个项目配置独立静态的phpMyAdmin端口
针对你部署多个DDEV容器、需要给每个容器的phpMyAdmin分配独立静态端口的需求,我们可以通过项目级自定义Compose配置来实现——全局的~/.ddev/router-compose.yaml会对所有项目生效,没法绑定到特定容器,所以不适合用来做区分配置。具体操作如下:
1. 为单个项目配置独立phpMyAdmin端口
每个DDEV项目都支持添加专属的自定义Compose文件,只会对当前项目生效:
- 进入目标项目的
.ddev目录,比如执行cd ~/projects/your-target-project/.ddev - 创建一个名为
docker-compose.phpmyadmin.yaml的文件,填入以下内容:
version: '3.6' services: phpmyadmin: ports: - "8037:80" # 把8037换成你想要的主机静态端口,每个项目可以设置不同值
- 保存文件后重启项目:
ddev restart
这样这个项目的phpMyAdmin就会固定绑定到你指定的主机端口,其他项目不受影响。你可以给不同项目设置不同端口(比如8038、8039等),只要端口没被主机上的其他服务占用就行。
2. 关于静态端口的确认
完全可以为phpMyAdmin设置静态端口:
- 你手动指定的静态端口不会在项目启停、移除后变更,和DDEV默认的动态主机端口逻辑不同
- 如果指定的端口已被其他进程占用,DDEV启动时会抛出端口冲突的错误,这时换一个未被使用的端口即可
补充说明
- 全局
~/.ddev/router-compose.yaml里的配置是全局生效的,要是在这里加多个端口,所有项目的phpMyAdmin都会监听这些端口,没法区分特定容器,所以不推荐用这种方式实现你的需求 - 可以执行
ddev describe命令查看项目的端口配置,确认phpMyAdmin的端口是否生效
内容的提问来源于stack exchange,提问作者MonTea
相关产品推荐
相关产品推荐

