Я сейчас пытаюсь назначить статический IP 172.17.0.1 при запуске контейнера Docker.
Я использую порт 2122 в качестве порта ssh этого контейнера, чтобы позволить этому контейнеру прослушивать порт 2122.
sudo docker run -i -t -p 2122:2122 ubuntu
Эта команда запускает контейнер Docker со случайным IP-адресом, таким как 172.17.0.5, но мне нужно назначить конкретный IP-адрес для контейнера.
Следующий сценарий оболочки - это то, что я ссылаюсь на документацию Docker в расширенных сетевых настройках.
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
Этот сценарий оболочки назначит статический IP 172.17.0.1 и установит связь со всем миром. Но всякий раз, когда я пытаюсь подключиться к этому контейнеру из моего локального хранилища, это не сработало. В чем проблема, возможно, я встретил?