Bây giờ tôi đang cố gắng gán IP tĩnh 172.17.0.1 khi khởi động bộ chứa Docker.
Tôi sử dụng cổng 2122 làm cổng ssh của container này để tôi cho container này nghe cổng 2122.
sudo docker run -i -t -p 2122:2122 ubuntu
Lệnh này sẽ chạy một container Docker với một IP ngẫu nhiên như 172.17.0.5, nhưng tôi cần gán một IP cụ thể cho container.
Kịch bản shell sau đây là những gì tôi tham chiếu tài liệu Docker trong cài đặt mạng nâng cao.
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
Kịch bản shell này sẽ gán một IP tĩnh 17,17.0.1 và liên kết với thế giới tốt. Nhưng bất cứ khi nào tôi cố gắng ssh đến container này từ địa phương của tôi, nó đã không hoạt động. Vấn đề gì tôi có thể gặp?