J'essaie maintenant d'attribuer une IP statique 172.17.0.1 lors du démarrage d'un conteneur Docker.
J'utilise le port 2122 comme port ssh de ce conteneur afin de laisser ce conteneur écouter le port 2122.
sudo docker run -i -t -p 2122:2122 ubuntu
Cette commande exécutera un conteneur Docker avec une IP aléatoire comme 172.17.0.5, mais je dois attribuer une IP spécifique au conteneur.
Le script shell suivant est ce que je référence à la documentation Docker dans les paramètres réseau avancés.
pid=$(sudo docker inspect -f '{{.State.Pid}}' <container_name> 2>/dev/null)
sudo rm -rf /var/run/netns/*
sudo ln -s /proc/$pid/ns/net /var/run/netns/$pid
sudo ip link add A type veth peer name B
sudo brctl addif docker0 A
sudo ip link set A up
sudo ip link set B netns $pid
sudo ip netns exec $pid ip link set eth0 down
sudo ip netns exec $pid ip link delete eth0
sudo ip netns exec $pid ip link set dev B name eth0
sudo ip netns exec $pid ip link set eth0 address 12:34:56:78:9a:bc
sudo ip netns exec $pid ip link set eth0 down
sudo ip netns exec $pid ip link set eth0 up
sudo ip netns exec $pid ip addr add 172.17.0.1/16 dev eth0
sudo ip netns exec $pid ip route add default via 172.17.42.1
Ce script shell attribuera une IP statique 172.17.0.1 et un lien vers l'amende mondiale. Mais chaque fois que j'essaie de ssh vers ce conteneur à partir de mon local, cela n'a pas fonctionné. Quel est le problème que j'ai rencontré?