Leaderboard ads banner

Docker: Tìm IP của host từ bên trong container

Các bác cho em hỏi từ bên trong container thì làm cách nào để có thể lấy ra địa chỉ IP của host? Em google thử thì thấy hướng dẫn chạy câu lệnh:

/sbin/ip route|awk '/default/ { print $3 }'

Nhưng câu lệnh này chỉ trả về địa chỉ IP mạng local mà em thì cần địa chỉ Public IP.

1 Câu Trả Lời

Nam Nguyễn Nam Nguyễn

Vì cả host machine và container đều có chung một địa chỉ public IP do đó nếu muốn tìm ra public IP của host thì bạn chỉ cần tìm ra địa chỉ public IP của container. Cách đơn giản để làm điều này đó là gửi một request tới các trang giúp tìm ra địa chỉ public IP như https://whatismyipaddress.com/.

Ví dụ trong trường hợp container có cài đặt PHP thì bạn có thể làm điều này như sau:

$html = file_get_contents('https://whatismyipaddress.com/');
preg_match('/Địa chỉ IP của host: \[?([:.0-9a-fA-F]+)\]?/', $html, $info);

Sau đó bạn có thể lấy thông tin địa chỉ public IP từ mảng $info:

$hostIP = $info[1];
echo $hostIP;
Nội dung tối thiểu 100 ký tự

Câu Hỏi Liên Quan