Docker容器仅接受本地网络请求问题排查求助
Docker容器Nginx仅本地可访问,外网无响应问题
我在学习Docker时遇到一个未找到解决方案的问题:部署的Web服务器仅能被本地网络设备访问,外网设备请求无响应。
环境:运行Ubuntu Server的树莓派4,通过docker-compose.yml和Dockerfile创建运行Nginx的容器。
相关配置文件
docker-compose.yml
version: "3" services: frontend: container_name: frontend build: context: ./client network: host dockerfile: Dockerfile ports: - "80:80" restart: unless-stopped
Dockerfile
FROM node AS build # Set working directory WORKDIR /client # Copy files COPY . . # Install dependencies RUN npm install # Build frontend RUN npm run build # Nginx FROM nginx COPY ./nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build client/dist /usr/share/nginx/html
nginx.conf
server { listen 80; listen [::]:80; server_name my-domain.be www.my-domain.be; location / { root /usr/share/nginx/html; try_files $uri /index.html; } }
已做排查
- 域名已正确指向公网IP,路由器已将树莓派设置为DMZ主机
- 本地网络设备访问网页正常
- 外网设备访问时服务器无响应,Nginx日志未收到任何GET请求
- 通过
tcpdump抓包发现,客户端的TCP握手请求未得到服务器确认 - 直接在树莓派上安装配置Nginx时,外网访问正常,确定问题源于Docker网络配置
我对Docker网络部分缺乏经验,希望能找到问题根源及解决办法,如需更多信息可告知。
内容的提问来源于stack exchange,提问作者LaurensDW
相关产品推荐
相关产品推荐

