मैं अपनी मशीनों के संचार के लिए खुले vSwitch (DPDK के साथ) का उपयोग कर रहा हूं। मेरे पास 2 भौतिक पीसी हैं। Nginx उनमें से एक और उसके आईपी = 10.10.10.6 / 24 पर काम कर रहा है। ओपन वीस्विच और डॉकर दूसरी मशीन पर काम कर रहे हैं। मैं इस कमांड के माध्यम से एक पुल बनाता हूं:
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 ubuntu1 --ipaddress=10.10.10.12/24
इस सब के बाद मेरे nginx मशीन कंटेनर और कंटेनर pinging nginx पिंग।
लेकिन जब मैं करने की कोशिश wget 10.10.10.6:80
, कंटेनर कनेक्ट नहीं कर सकते। लेकिन दूसरी तरफ, मेरी भौतिक मशीन (आईपी: 10.10.10.11) कर सकती है। जब मैं एक ही कमांड (wget) चलाता हूं, तो उसे पृष्ठ 10.10.10.6:80 से प्राप्त होता है।
मैं क्या गलत कर रहा हूं?