【问题标题】:Connection issue between Docker container and Other machineDocker 容器与其他机器之间的连接问题
【发布时间】:2017-07-18 12:45:04
【问题描述】:

我正在使用 open vSwitch(带有 DPDK)来与我的机器通信。我有 2 台物理 PC。 Nginx 正在研究其中之一,其 ip=10.10.10.6/24。打开 vSwitch,Docker 正在另一台机器上工作。我通过这个命令创建了一个桥:

ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev

我通过这个命令将一个端口添加到物理端口,该命令使用 DPDK 驱动程序并通过电缆连接到 Ngnix 机器:

ovs-vsctl add-port br0 dpdk0 -- set Interface dpdk0 \
        type=dpdk options:dpdk-devargs=0000:05:00.1

并为 br0 分配一个 IP:

ifconfig br0 10.10.10.11 netmask 255.255.255.0 up

在此之后,我使用我的图像创建了一个容器:

Dockerfile:

FROM ubuntu:latest
MAINTAINER Zekeriya Akgul


RUN apt-get update -y && \
    apt-get upgrade -y && \
    apt-get install -y apache2 iputils-ping iputils-tracepath iproute2 net-tools wget

EXPOSE 80 443 444 

并使用以下命令运行容器:

docker run --rm -P -it --cap-add NET_ADMIN --name ubuntu1 zkryakgul/ubuntu /bin/bash

在此之后,我使用以下命令为容器分配一个端口:

ovs-docker add-port br0 eth1 attacker1 --ipaddress=10.10.10.12/24

在所有这些步骤之后,我的 nginx 机器 ping 容器和容器 ping nginx。

但是当我尝试wget 10.10.10.6:80 时,容器无法连接。但另一方面,我的物理机(ip:10.10.10.11)可以。当我运行相同的命令 (wget) 时,它会从 10.10.10.6:80 获取页面。

我做错了什么?

【问题讨论】:

    标签: linux nginx docker openvswitch dpdk


    【解决方案1】:

    我终于发现了问题。问题是 docker 容器上的 tcp 卸载。当我通过此命令关闭 tcp 卸载时:

    ethtool -K eth6 tx off rx off
    

    一切正常。

    下次请尝试找到解决方案而不是找借口。

    【讨论】:

    • "请下次尝试寻找解决方案,而不是找借口。"您的问题在这里是题外话(正如@jww 评论的那样),所以请不要冒犯。
    猜你喜欢
    • 2020-12-06
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 2018-08-15
    • 1970-01-01
    相关资源
    最近更新 更多