docker - Docker-无法从容器内部ping主机子网上的任何内容

标签 docker networking routing docker-compose

我有一台IP地址为192.168.11.10的Mac主机。

我有一个使用默认网络配置在其中运行的docker-compose项目。我需要从Docker容器中连接到IP地址为192.168.11.11的设备。

从容器内部,除了192.168.11.X子网中的主机,我可以访问外部的任何内容。我不想使用network = host公开我的网络,因为有6种不同的服务,我希望将它们分开。

我也尝试过通过VPN从外部网络连接到192.168.11.11设备,以丢弃设备配置上的任何路由问题,并且可以正常工作。

这是我的docker-compose.yml文件的一部分

version: '2'
services:
  php:
    build:
      context: ./
      dockerfile: dockerfiles/php/php.docker
    links:
      - socket
      - horizon
    volumes:
      - './:/var/www'

和我的php.docker文件:
FROM php:7.2-fpm
RUN apt-get update && apt-get install -y mariadb-client libxml2-dev zlib1g-dev libpng-dev \
    && rm -rf /var/lib/apt/lists/* \
    && docker-php-ext-install pdo_mysql soap simplexml zip gd

我的Docker容器中的ifconfig如下所示:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1
    link/ipip 0.0.0.0 brd 0.0.0.0
3: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1
    link/tunnel6 :: brd ::
94: eth0@if95: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:18:00:06 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.24.0.6/16 brd 172.24.255.255 scope global eth0
       valid_lft forever preferred_lft forever

前往google.com的跟踪路线:
traceroute to google.com (216.58.192.46), 30 hops max, 60 byte packets
 1  172.24.0.1 (172.24.0.1)  1.254 ms  1.169 ms  1.136 ms
 2  * * *
 3  * * *
 4  * * *
 5  10.130.4.9 (10.130.4.9)  15.110 ms  14.998 ms  15.173 ms
 6  10.192.16.97 (10.192.16.97)  16.829 ms 10.192.16.101 (10.192.16.101)  13.281 ms 10.192.16.97 (10.192.16.97)  13.230 ms
 7  10.192.37.162 (10.192.37.162)  14.961 ms  15.365 ms  15.946 ms
 8  10.192.55.42 (10.192.55.42)  10.349 ms  11.927 ms  11.740 ms
 9  10.192.55.53 (10.192.55.53)  13.189 ms  11.223 ms  9.438 ms
10  * * *
11  ix-et-9-1-5-0.tcore2.mln-miami.as6453.net (66.110.72.129)  45.735 ms  44.555 ms  46.883 ms
12  72.14.215.97 (72.14.215.97)  44.955 ms  44.353 ms  45.396 ms
13  108.170.249.1 (108.170.249.1)  35.341 ms 108.170.249.17 (108.170.249.17)  35.471 ms  38.107 ms
14  108.170.226.225 (108.170.226.225)  37.641 ms 108.170.226.229 (108.170.226.229)  36.956 ms 108.170.226.225 (108.170.226.225)  36.224 ms
15  mia07s46-in-f14.1e100.net (216.58.192.46)  49.190 ms  47.804 ms  46.801 ms

我的设备的路由跟踪将引发以下情况:
traceroute to 192.168.11.11 (192.168.11.11), 30 hops max, 60 byte packets
 1  172.24.0.1 (172.24.0.1)  1.229 ms  1.026 ms  0.964 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *

最佳答案

敲了好几天后,看来我的Mac上有些配置错误。我通过重置整个Docker环境来修复它:

(警告:这将删除您的所有容器,图像和网络)

docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
docker network prune -f
docker rmi -f $(docker images --filter dangling=true -qa)
docker volume rm $(docker volume ls --filter dangling=true -q)

关于docker - Docker-无法从容器内部ping主机子网上的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57980367/

相关文章:

c++ - 查找 DNS 服务器和网关的 IP 和 MAC 地址

networking - MTU 1500 : fragment packets after 1472 bytes

docker - apt-get update 签名验证出错

docker - 使用 docker compose 安装 nextcloud 时出错

docker - 优雅地停止 prometheus docker 容器

ios - 通知 iOS 应用程序更新其内容

ruby-on-rails - 如何最容易地通过路由助手转发参数?

php - 流明路由缓存不起作用

function - Angular 2 : TypeError 'this.' is undefined

docker - Ansible docker模块缺少CP命令?