J'utilise vSwitch ouvert (avec DPDK) pour communiquer avec mes machines. J'ai 2 PC physique. Nginx travaille sur l'un d'entre eux et son ip = 10.10.10.6/24. Ouvrez vSwitch et Docker fonctionne sur l'autre machine. Je crée un pont via cette commande:Problème de connexion entre le conteneur Docker et l'autre machine
ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
Et j'ajouter un port à port physique via cette commande qui utilise pilote dpdk et connecté à la machine Ngnix avec un câble:
ovs-vsctl add-port br0 dpdk0 -- set Interface dpdk0 \
type=dpdk options:dpdk-devargs=0000:05:00.1
Et assigner une adresse IP à l'br0:
ifconfig br0 10.10.10.11 netmask 255.255.255.0 up
Après cela, je crée un conteneur en utilisant mon image:
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
et exécutez le conteneur en utilisant la commande suivante:
docker run --rm -P -it --cap-add NET_ADMIN --name ubuntu1 zkryakgul/ubuntu /bin/bash
Après cela, j'assigne un port au conteneur en utilisant la commande suivante:
ovs-docker add-port br0 eth1 attacker1 --ipaddress=10.10.10.12/24
Après tout cela étapes ma machine nginx ping sur le conteneur et le ping ping nginx.
Mais lorsque j'essaie de wget 10.10.10.6:80
, le conteneur ne peut pas se connecter. Mais d'un autre côté, ma machine physique (ip: 10.10.10.11) peut le faire. Quand j'exécute la même commande (wget), il obtient la page de 10.10.10.6:80.
Qu'est-ce que je fais mal?
"La prochaine fois essayer de trouver une solution au lieu de trouver une excuse s'il vous plaît." Votre question est un hors-sujet ici (comme @ jww a commenté), donc pas d'offense s'il vous plaît. –