Docker 컨테이너가 시작될 때 고정 IP 172.17.0.1을 할당하려고합니다.
포트 2122를이 컨테이너의 ssh 포트로 사용하여이 컨테이너가 포트 2122를 수신하게합니다.
sudo docker run -i -t -p 2122:2122 ubuntu
이 명령은 172.17.0.5와 같은 임의의 IP로 Docker 컨테이너를 실행하지만 컨테이너에 특정 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을 할당하고 세밀하게 연결합니다. 그러나 현지 에서이 컨테이너로 ssh하려고 할 때마다 작동하지 않았습니다. 내가 만난 문제는 무엇입니까?