gpt4 book ai didi

Docker compose 端口转发无法正常工作

转载 作者:IT老高 更新时间:2023-10-28 21:19:18 27 4
gpt4 key购买 nike

当我通过非常简单的命令使用 docker 时:

docker run -p 80:80 nginx

端口转发工作正常,当我使用浏览器/curl 转到 localhost:80 时,我可以获得 nginx 的“欢迎页面”。

同时当我使用非常相似但 docker-compose 特定的配置时:

version: '3'
services:
nginx:
image: nginx
ports:
- "80:80"

当我这样做时 docker-compose up并转到浏览器 - 我看到无限加载,所以看起来端口转发配置不正确,但我不明白配置中有什么问题。我尝试使用不同的浏览器和 curl,我得到了相同的结果 - 无限加载。

这里的 Nginx 只是一个例子,因为它很简单,实际上我对 redis/mysql/java 图像有同样的问题,所以问题与 nginx 无关。

我还尝试了以下通过 docker-compose 启动容器的方法:

docker-compose run -p 80:80 nginx

docker-compose run --service-ports nginx

但不走运,我得到了相同的结果。

在这两种情况下(docker rundocker-compose up)我都有相同的网络驱动程序类型 - bridge .

我比较了 docker inspect <container id> 的结果对于这两种情况:http://i.prntscr.com/obvxi0yESEa92znLDEu_PA.png

docker inspect <network id> 的结果: http://i.prntscr.com/yyTpetvJSXa-dz4o9Pcl3w.png

ifconfig docker0结果:

docker0   Link encap:Ethernet  HWaddr 02:42:f1:9a:b6:72  
inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:f1ff:fe9a:b672/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:174 errors:0 dropped:0 overruns:0 frame:0
TX packets:837 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:47434 (47.4 KB) TX bytes:107712 (107.7 KB)

brctl show结果:

bridge name     bridge id               STP enabled     interfaces
br-f7adc3956101 8000.02427f870e7f no
docker0 8000.0242f19ab672 no

ifconfig在主机上结果:https://pastebin.com/6ufWeYTE

route在主机上的结果:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default gateway 0.0.0.0 UG 600 0 0 wlp4s0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 docker0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp4s0

两者dockerdocker-compose是使用 Linux 的官方网站说明安装的。

主机操作系统:Ubuntu 17.04

更新:我尝试在撰写配置中设置“可附加”网络属性,问题已解决。虽然仍然不清楚为什么会发生这种情况。

networks:
default:
attachable: true

最佳答案

在我的例子中,我使用 docker-compose run 没有 --service-ports 参数,所以端口映射被忽略了。

例子:

docker-compose.yml

version: "3"

services:
app-host:
image: nginx:1.19.0-alpine
working_dir: /app
volumes:
- ./:/app/
ports:
- "80:3000"

命令

    docker-compose run --service-ports app-host

引用:discussion forum docker-compose documentation

关于Docker compose 端口转发无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47043428/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com