2017-01-03 6 views
28

호스트의 컨테이너가 "갑자기"외부 컨테이너에 연결되지 않습니다. 그러나 일부 호스트가 새로 고쳐졌고 갑자기 다음과 같은 상황이 발생했습니다.Docker Networking Disabled : 경고 : IPv4 전달이 비활성화되었습니다. 네트워킹이 작동하지 않습니다.

  1. 호스트가 다른 호스트와 통신 할 수 있습니다.
  2. 호스트에서 실행중인 컨테이너는 다른 호스트와 통신 할 수 없습니다.

    [[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 
    

    이 경고는 초기 버전에 있던 내가 처음봤을 : 용기 자체에서, 우리는 같은 호스트를 ping 할 수없는, 지금

    [[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 
    

    : 여기

은 예입니다 Docker의 ... Docker 1.9.1 및 1.10.3의 문제 해결 방법은 무엇입니까?

답변

52

나는 http://chrisgilmerproj.github.io/ubuntu/network/docker/2013/09/05/ipv4-forwarding-and-docker.html을 검토했으며, 호스트의 문제를 해결하는 데 도움이되었습니다.

는 I은 /etc/sysctl.conf에 다음 추가 : 다음 네트워크 서비스를 재시작

net.ipv4.ip_forward=1 

및 설정 검증 :

[[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 

모든 컨테이너는 이제 외부와 통신 할 수 세계 컨테이너!

+1

우분투에서 설정을 다시로드하려면'sudo sysctl -p'가 필요했습니다 (systemctl을 찾을 수 없습니다). –

+0

이 솔루션은 CentOS 7에서 호스트 (테스트 용)에서 컨테이너에 액세스하려는 경우에 필요했습니다. –

+0

Windows 호스트 (Hyper-V)에서 실행중인 컨테이너가 비슷합니다. Windows와 비슷한 설정이 있습니까? –