Wordpress 可以在Docker容器之间ping但不能wget
我正在使用docker compose设置一个NextJS应用程序,它从运行在不同容器中的Wordpress REST-API获取数据 问题是,当我试图从NextJS容器中获取或WGET wordpress容器时,我得到了Wordpress 可以在Docker容器之间ping但不能wget,wordpress,docker,docker-compose,Wordpress,Docker,Docker Compose,我正在使用docker compose设置一个NextJS应用程序,它从运行在不同容器中的Wordpress REST-API获取数据 问题是,当我试图从NextJS容器中获取或WGET wordpress容器时,我得到了ECONNREFUSED。我可以平wordpress:8000没有任何问题 如果我使用Postman或尝试使用公共ip从另一台主机(即不是运行docker compose的机器)获取REST-API,那么它工作得非常好 我怀疑docker的配置有问题,但我很迷茫,因为Ping可
ECONNREFUSED
。我可以平wordpress:8000没有任何问题
如果我使用Postman或尝试使用公共ip从另一台主机(即不是运行docker compose的机器)获取REST-API,那么它工作得非常好
我怀疑docker的配置有问题,但我很迷茫,因为Ping可以工作,但wget不能
有人知道凶手是什么吗
我的docker compose.yml:
version: '2'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: ***REMOVED***
MYSQL_DATABASE: ***REMOVED***
MYSQL_USER: ***REMOVED***
MYSQL_PASSWORD: ***REMOVED***
networks:
- back
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- ./wp-content:/var/www/html/wp-content
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: ***REMOVED****
networks:
- back
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8080:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: ***REMOVED***
networks:
- back
next-app:
depends_on:
- wordpress
build:
context: ./next-app
dockerfile: Dockerfile
volumes:
- './next-app:/usr/src/app'
- '/usr/src/app/node_modules'
ports:
- '80:3000'
networks:
- back
express-server:
build:
context: ./express-server
dockerfile: Dockerfile
ports:
- '3001:3001'
networks:
back:
driver: bridge
volumes:
db_data:
从NextJS容器内部,您需要使用端口
80
。端口8000
它来自您的(主机)计算机。所以从docker容器内部使用
在您的docker compose文件中只说:“将我的本地(主机)端口
8000
映射到容器端口80
”,但在docker网络中,它仍然是端口80
您可以ping,因为ping不使用端口。我们讨论的端口是TCP/UDP端口,请参阅。但是ping使用ICMP(Internet控制消息协议),它根本不使用端口,请参见我有两个容器,容器端口为80,并将phpmyadmin端口更改为81。然后我把它拿到wordpress:80上,它就成功了!太好了,非常感谢!!
ports:
- "8000:80"