programing

도커 네트워킹 사용 안 함: 경고: IPv4 전달 사용 안 함.네트워킹이 작동하지 않음

batch 2023. 8. 4. 22:46
반응형

도커 네트워킹 사용 안 함: 경고: IPv4 전달 사용 안 함.네트워킹이 작동하지 않음

호스트의 컨테이너와 외부 컨테이너의 연결이 "갑자기" 끊어집니다.그러나 일부 호스트가 새로 고쳐졌고 갑자기 다음과 같은 상황이 발생했습니다.

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

다음은 예입니다.

[root@pprdespap322 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

이제 컨테이너 자체에서 동일한 호스트를 ping할 수 없습니다.

[root@pprdespap322 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

이 경고를 처음 본 것은 도커의 초기 버전에서였습니다.도커 1.9.1 및 1.10.3을 사용하는 경우, 이 문제를 해결하는 방법은 무엇입니까?

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

다음을 /etc/sysctl.conf에 추가했습니다.

net.ipv4.ip_forward=1

그런 다음 네트워크 서비스를 다시 시작하고 설정을 확인했습니다.

[root@pprdespap322 deploy]#  systemctl restart network
[root@pprdespap322 deploy]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
[root@pprdespap322 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

이제 모든 컨테이너가 외부 컨테이너와 통신할 수 있습니다!

도커 서비스를 다시 시작해 보십시오.

예: Ubuntu의 경우:

$ sudo systemctl restart docker

추가 시도--network=host와 함께docker run이 문제를 해결할 명령입니다.

https://medium.com/ @gchandra/computer-sys4-forwarding-is-disabled-8499ce59231e

네트워크를 다시 시작하는 문제를 해결했습니다.

systemctl restart network

나에게 효과가 있었던 것:

  1. 편집/etc/sysctl.conf다음 행이 있는지 확인합니다.
net.ipv4.ip_forward=1
  1. 달려.sudo sysctl -p따라서 변경사항이 적용됩니다.

  2. 영향을 받는 컨테이너를 다시 시작합니다.

docker restart [container_name/id]

언급URL : https://stackoverflow.com/questions/41453263/docker-networking-disabled-warning-ipv4-forwarding-is-disabled-networking-wil

반응형