Docker组合端口转发无法正常工作

栏目: 编程工具 · 发布时间: 5年前

内容简介:尝试删除您创建的所有网络,如下所示:docker network rm $(docker network ls -q)然后再次运行docker-compose

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

docker run -p 80:80 nginx

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

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

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

当我做docker-compose并进入浏览器时 – 我看到无限加载,所以看起来端口转发没有正确配置,但我无法理解配置中的错误.

我尝试使用不同的浏览器和卷曲,我得到相同的结果 – 无限加载.

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

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

docker-compose run -p 80:80 nginx

docker-compose run --service-ports nginx

但没有运气,我得到了同样的结果.

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

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

和docker检查<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显示结果:

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

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

主机上的路由结果:

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

docker和docker-compose都是使用适用于 Linux 的官方站点说明安装的.

主机操作系统:Ubuntu 17.04

更新:

我试图在compose配置中设置’可附加’网络属性,问题得到解决.虽然还不清楚为什么会这样.

networks:
  default:
  attachable: true

尝试删除您创建的所有网络,如下所示:

docker network rm $(docker network ls -q)

然后再次运行docker-compose

翻译自:https://stackoverflow.com/questions/47043428/docker-compose-port-forwarding-not-working-properly


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Clean Architecture

Clean Architecture

Robert C. Martin / Prentice Hall / 2017-9-20 / USD 34.99

Practical Software Architecture Solutions from the Legendary Robert C. Martin (“Uncle Bob”) By applying universal rules of software architecture, you can dramatically improve developer producti......一起来看看 《Clean Architecture》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具