我在centos 7中安装了docker容器,但是docker容器和主机不在同一个网络上,这就是为什么Docker无法从外面访问?

时间:2018-01-18 13:37:39

标签: linux docker docker-compose docker-machine

enter image description here

1.eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:81:92:a4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.92.134/24 brd 192.168.92.255 scope global dynamic eno16777736
       valid_lft 1128sec preferred_lft 1128sec
    inet6 fe80::20c:29ff:fe81:92a4/64 scope link 
       valid_lft forever preferred_lft forever
2.: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 02:42:a7:60:5e:c6 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:a7ff:fe60:5ec6/64 scope link 
       valid_lft forever preferred_lft forever

1 个答案:

答案 0 :(得分:1)

如果您希望容器和主机共享同一网络,则需要使用--net=host参数创建容器。

docker run -ti --net=host ubuntu:16.04

通过使用该命令,您在该容器中托管的任何服务都可以在主机和网络上访问,而无需任何其他配置,假设您已经没有在同一端口和/或防火墙上运行另一个服务

现在,如果您希望容器拥有其在网络上但能够访问主机上的托管服务,那么您应该使用-p参数映射端口。

docker run -p 80:80 apache:latest #Assuming you want to access a webserver for example

您应该在Docker的文档

上阅读更多相关信息

https://docs.docker.com/engine/userguide/networking/