नीचे वह टोपोलॉजी है जिसे मैं मिनीनेट (कंटेनरनेट) के साथ बनाने की कोशिश कर रहा हूं, जहां बीच में एक परत 2 स्विच के साथ 3 कंटेनर हैं। मैं ब्राउज़र पर लोकलहोस्ट पर इन कंटेनरों (जैसे काली लिनक्स कंटेनर) तक पहुंचना चाहता हूं। मैंने बंदरगाहों को उजागर करने की कोशिश की जैसे कि यह प्रलेखन में कहता है लेकिन फिर भी मैं इसे ब्राउज़र पर एक्सेस नहीं कर सकता। नोट- अगर मैं लोकलहोस्ट पर कंटेनरनेट का उपयोग नहीं करता हूं तो मैं कंटेनरों (जैसे काली लिनक्स कॉनटिनर) तक पहुंच सकता हूं। संदर्भ के लिए तीसरा होस्ट निम्नलिखित डॉकटर कंटेनर का उपयोग करता है- https://hub.docker.com/ r/lukaszlach/काली-डेस्कटॉप

#!/usr/bin/python

from mininet.net import Containernet
from mininet.node import Controller
from mininet.cli import CLI
from mininet.link import TCLink
from mininet.log import info, setLogLevel
#VNC_DEFAULT = 5900
#WEB_DEFAULT = 6080
setLogLevel('info')

net = Containernet(controller=Controller)
info('*** Adding controller\n')
net.addController('c0' )
info('*** Adding docker containers\n')
d1 = net.addDocker('d1', ip='10.0.2.16', dimage="virtualmogli_v1_service1", ports=[5000], port_bindings={5000:5000},publish_all_ports=True)
d2 = net.addDocker('d2', ip='10.0.2.15', dimage="virtualmogli_v1_service2", ports=[5001], port_bindings={5001:5001},publish_all_ports=True)
d3 = net.addDocker('d3', ip='10.0.2.17', dimage="virtualmogli_v1_kalicontainer", ports=[5900, 6080], port_bindings={5900: 5900, 6080: 6080}, publish_all_ports=True,)
info('*** Adding switches\n')
s1 = net.addSwitch('s1')
#s2 = net.addSwitch('s2')
info('*** Creating links\n')
net.addLink(d1, s1, cls=TCLink, delay='100ms', bw=1)
#net.addLink(s1, s2, cls=TCLink, delay='100ms', bw=1)
net.addLink(s1, d2, cls=TCLink, delay='100ms', bw=1)
net.addLink(s1, d3, cls=TCLink, delay='100ms', bw=1)
info('*** Starting network\n')
net.start()
info('*** Testing connectivity\n')
net.ping([d1, d2, d3])
info('*** Running CLI\n')
CLI(net)
info('*** Stopping network')
net.stop()
0
Rohan Suri 26 जिंदा 2021, 16:46

1 उत्तर

सबसे बढ़िया उत्तर

पहेली का लापता टुकड़ा यह है कि हमें अपने कंटेनरनेट टोपोलॉजी में dcmd="/init" जोड़ने की जरूरत है, न कि हमारे बेस क्लास के लिए।

उपरोक्त समस्या के लिए, निम्न कोड काम करेगा- d2 = net.addDocker('d2', ip='10.0.2.15', dimage="lukaszlach/kali-desktop:xfce-top10",ports=[5900,6080],dcmd="/init , port_bindings={5900:5900,6080:6080},publish_all_ports= True, environment={"USER": "kali", "PASSWORD": "kali" , "ROOT_PASSWORD": "root"})

0
Rohan Suri 8 फरवरी 2021, 11:34