2016-12-15 46 views
6

Chạy macOS và docker ubuntu trên đó, tôi không thể ping địa chỉ IP của mạng nội bộ của mình. Dưới đây là cấu hình mạng của vùng chứa docker của tôi. Tôi có thể ping địa chỉ IP của máy chủ của mình nhưng tôi không thể truy cập các địa chỉ IP khác trên mạng cục bộ.Không thể truy cập IP mạng cục bộ từ vùng chứa docker

root# ping 172.17.101.192 
PING 172.17.101.192 (172.17.101.192) 56(84) bytes of data. 
From 172.17.0.3 icmp_seq=1 Destination Host Unreachable 
From 172.17.0.3 icmp_seq=2 Destination Host Unreachable 

root# ifconfig   
eth0  Link encap:Ethernet HWaddr 02:42:ac:11:00:03 
      inet addr:172.17.0.3 Bcast:0.0.0.0 Mask:255.255.0.0 
      inet6 addr: fe80::42:acff:fe11:3/64 Scope:Link 

Có cấu hình mạng nào giúp tôi thực hiện thao tác này không?

Tôi đã thử net=host nhưng không giúp được.

+0

bạn đang sử dụng phiên bản docker nào? – Gaafar

+0

'1.13.0-rc4, xây dựng 88862e7' – montrealist

+0

Bạn đang sử dụng docker-máy hoặc docker cho mac (https://docs.docker.com/engine/installation/mac/)? –

Trả lời

8

Tôi đã sử dụng đế cắm cho mac, sự cố là mạng nội bộ docker xung đột với địa chỉ mạng cục bộ của tôi. Để giải quyết vấn đề này, tôi cần phải đi tới Preferences trong trình đơn dokcer. Trong trình đơn Tùy chọn Daemon>Advanced Menu, tôi có thể cung cấp bip khác.

{ 
    "bip" : "12.12.0.1/24" 
} 

Nhấp vào áp dụng và khởi động lại. Docker thời gian tiếp theo sẽ bắt đầu với mạng nội bộ là 12.12.0.1/24.

2

tôi đã cố gắng điều sau đây, và nó hoạt động:

mac-os $> ifconfig 
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 
    ether 78:31:c1:bd:4b:84 
    inet6 fe80::1425:a90d:9c00:ef53%en0 prefixlen 64 secured scopeid 0x4 
    inet 10.191.41.1 netmask 0xfffff800 broadcast 10.191.47.255 
    nd6 options=201<PERFORMNUD,DAD> 
    media: autoselect 
    status: active 

Vì vậy ip của tôi là 10.191.41.1. Sau đó, tôi làm:

mac-os $> docker run -ti --rm ubuntu bash -c "apt-get update && apt-get install -y inetutils-ping && ping 10.191.41.1" 

Cài đặt lệnh "ping" nào và cố ping máy chủ của tôi. Tôi nhận được các câu trả lời đúng:

[...] 
PING 10.191.41.1 (10.191.41.1): 56 data bytes 
64 bytes from 10.191.41.1: icmp_seq=0 ttl=37 time=0.303 ms 
64 bytes from 10.191.41.1: icmp_seq=1 ttl=37 time=0.536 ms 
[...] 
+0

Tôi đã cập nhật câu hỏi của mình – badal16

+0

Tôi có thể ping mac của mình nhưng tôi không thể truy cập vào một trong các máy chủ trên mạng cục bộ. Docker không tạo mạng cầu nối bình thường trên máy ảo.Vì vậy, tôi muốn tạo một mạng cầu nối có cùng quyền truy cập từ mac của tôi. – badal16

2

Tôi đoán bạn đang sử dụng máy ủi.

Bạn nên kiểm tra docker for mac vì nó có một số networking improvements có thể làm việc này cho bạn. Đây là những gì tôi đang sử dụng và tôi có thể tiếp cận các máy chủ khác trên mạng nội bộ của tôi từ docker.

+0

Không, chúng tôi đang sử dụng docker cho Mac. Bạn có thực hiện bất kỳ cấu hình mạng đặc biệt nào trên các vùng chứa của mình không? – montrealist

+0

Không có gì đặc biệt cả. nhưng tôi đang sử dụng nhánh ổn định và (xem phiên bản bạn có) bạn đang ở trên nhánh beta. –

+1

(mặc dù tôi chỉ cài đặt nhánh beta và cũng hoạt động với tôi) –

2

Tôi nghĩ mạng nội bộ docker có thể xung đột với địa chỉ mạng cục bộ của bạn.

Cố gắng chạy Docker thay đổi mạng nội bộ mặc định thành một thứ không xung đột, như 172.31.0.0/24. Thêm vào tùy chọn khởi động Docker bạn --bip 172.31.0.1/24, có lẽ nằm ở /etc/default/docker:

# Use DOCKER_OPTS to modify the daemon startup options. 
DOCKER_OPTS="--bip 172.31.0.1/24" 

UPDATE: Mặc dù điều này là đúng trong Linux, thực hiện Mac là khác nhau, xem tài liệu here, vì vậy nó phụ thuộc nếu bạn đang sử dụng Docker cho Mac hoặc cho Linux.

Để kiểm tra, hãy thử gắn máy tính xách tay của bạn vào một mạng khác, bất kỳ trong phạm vi 192.168.0.0/16 sẽ đủ.

Các vấn đề liên quan