Docker 容器与其他机器之间的连接问题
Connection issue between Docker container and Other machine
我正在使用开放式 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
在此之后,我使用我的图像创建了一个容器:
Docker文件:
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 获取页面。
我做错了什么?
我终于发现 problem.The 问题是 docker 上的 tcp 卸载 container.When 我通过以下命令关闭了 tcp 卸载:
ethtool -K eth6 tx off rx off
一切正常。
下次请尝试找到解决方案而不是找借口。
我正在使用开放式 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
在此之后,我使用我的图像创建了一个容器:
Docker文件:
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 获取页面。
我做错了什么?
我终于发现 problem.The 问题是 docker 上的 tcp 卸载 container.When 我通过以下命令关闭了 tcp 卸载:
ethtool -K eth6 tx off rx off
一切正常。
下次请尝试找到解决方案而不是找借口。