Có một số cuộc thảo luận lâu dài về cách làm điều này một cách nhất quán, được hiểu rõ và di động. Không có giải pháp hoàn chỉnh nhưng tôi sẽ liên kết bạn với các cuộc thảo luận dưới đây.
Trong mọi trường hợp, nhiều người muốn thử sử dụng tùy chọn --add-host để docker chạy để thêm địa chỉ IP của máy chủ lưu trữ vào tập tin chứa / etc / host. Từ đó, việc kết nối với máy chủ trên bất kỳ cổng cần thiết nào là không quan trọng:
Thêm các mục vào một tập tin máy chủ chứa
Bạn có thể thêm các máy chủ khác vào tệp chứa / etc / hosts bằng cách sử dụng một hoặc nhiều cờ --add-host. Ví dụ này thêm một địa chỉ tĩnh cho máy chủ có tên docker:
$ docker run --add-host=docker:10.180.0.1 --rm -it debian
$$ ping docker
PING docker (10.180.0.1): 48 data bytes
56 bytes from 10.180.0.1: icmp_seq=0 ttl=254 time=7.600 ms
56 bytes from 10.180.0.1: icmp_seq=1 ttl=254 time=30.705 ms
^C--- docker ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 7.600/19.152/30.705/11.553 ms
Lưu ý: Đôi khi bạn cần kết nối với máy chủ Docker, có nghĩa là lấy địa chỉ IP của máy chủ. Bạn có thể sử dụng các lệnh shell sau để đơn giản hóa quá trình này:
$ alias hostip="ip route show 0.0.0.0/0 | grep -Eo 'via \S+' | awk '{ print $2 }'"
$ docker run --add-host=docker:$(hostip) --rm -it debian
Tài liệu:
https://docs.docker.com/engine/reference/commandline/run/
Thảo luận về việc truy cập máy chủ từ container:
https://github.com/docker/docker/issues/1143
https://github.com/docker/docker/issues/10023