2017-01-03 13 views
28

Các thùng chứa trong máy chủ "đột nhiên" mất kết nối với các thùng chứa ngoài thế giới. Tuy nhiên, một số máy chủ đã được làm mới và đột nhiên chúng tôi có tình huống sau:Vô hiệu hóa mạng Docker: CẢNH BÁO: Tính năng chuyển tiếp IPv4 bị tắt. Mạng sẽ không hoạt động

  1. Máy chủ có thể liên lạc với các máy chủ khác.
  2. Các thùng chứa đang chạy trong máy chủ không thể kết nối với các máy chủ khác.

Dưới đây là một ví dụ:

[[email protected] deploy]# ping ci.docker.company.net 
PING pprdespap324.corp.company.net (10.137.55.22) 56(84) bytes of data. 
64 bytes from pprdespap324.corp.company.net (10.137.55.22): icmp_seq=1 ttl=64 time=0.282 ms 
64 bytes from pprdespap324.corp.company.net (10.137.55.22): icmp_seq=2 ttl=64 time=0.341 ms 
^C 
--- pprdespap324.corp.company.net ping statistics --- 
2 packets transmitted, 2 received, 0% packet loss, time 1001ms 
rtt min/avg/max/mdev = 0.282/0.311/0.341/0.034 ms 

Bây giờ, từ hộp đựng, chúng tôi không thể ping cùng một máy chủ:

[[email protected] deploy]# docker run -ti quay.io/coreos/registry ping ci.docker.company.net 
WARNING: IPv4 forwarding is disabled. Networking will not work. 
ping: unknown host ci.docker.company.net 

Lần đầu tiên tôi nhìn thấy cảnh báo này là trong các phiên bản ban đầu của Docker ... Có Docker 1.9.1 và 1.10.3, Làm thế nào để giải quyết vấn đề này?

Trả lời

52

Tôi đã xem xét http://chrisgilmerproj.github.io/ubuntu/network/docker/2013/09/05/ipv4-forwarding-and-docker.html và nó đã giúp tôi giải quyết vấn đề trên máy chủ.

tôi đã thêm dòng sau vào /etc/sysctl.conf:

net.ipv4.ip_forward=1 

tôi sau đó khởi động lại dịch vụ mạng và xác nhận các thiết lập:

[[email protected] deploy]# systemctl restart network 
[[email protected] deploy]# sysctl net.ipv4.ip_forward 
net.ipv4.ip_forward = 1 
[[email protected] deploy]# docker run -ti quay.io/coreos/registry ping ci.docker.company.net 
PING pprdespap324.corp.company.net (10.137.55.22) 56(84) bytes of data. 
64 bytes from pprdespap324.corp.company.net (10.137.55.22): icmp_seq=1 ttl=63 time=0.329 ms 
64 bytes from pprdespap324.corp.company.net (10.137.55.22): icmp_seq=2 ttl=63 time=0.306 ms 
^C 
--- pprdespap324.corp.company.net ping statistics --- 
2 packets transmitted, 2 received, 0% packet loss, time 1001ms 
rtt min/avg/max/mdev = 0.306/0.317/0.329/0.021 ms 

Tất cả container bây giờ có thể giao tiếp với bên ngoài container thế giới!

+1

Trên Ubuntu, tôi cần 'sudo sysctl -p' để tải lại các cài đặt (không tìm thấy systemctl). –

+0

Giải pháp này là cần thiết trên Centos 7 khi chỉ đơn giản là cố gắng truy cập vào container từ máy chủ (để thử nghiệm). –

+0

Tôi có tương tự trong các thùng chứa đang chạy trên máy chủ Windows (trên Hyper-V). Có một thiết lập tương tự ở đâu đó cho Windows không? –

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