Docker守护进程套接字配置

问题描述 投票:-2回答:1

我在网上找不到答案,因此我的问题是:为什么Docker守护程序只打开一个IPv6套接字?如何强制它使用双堆栈或仅使用IPv4的插槽?

# docker version

Client:
 Version:      17.06.2-ol
 API version:  1.30
 Go version:   go1.8.3
 Git commit:   d02b7ab
 Built:        Fri Oct  6 00:02:23 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.06.2-ol
 API version:  1.30 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   d02b7ab
 Built:        Fri Oct  6 00:03:48 2017
 OS/Arch:      linux/amd64
 Experimental: false

/etc/sysconfig/docker-network文件(它是Oracle Linux系统):

DOCKER_NETWORK_OPTIONS=-H unix:///var/run/docker.sock -H tcp://0.0.0.0:2376

# sysctl net.ipv6.bindv6only

net.ipv6.bindv6only = 0

我试图在系统范围内设置--ipv6=false,或者完全禁用IPv6。仍然,正如ssnetstat所示,Docker只打开一个IPv6套接字:

LISTEN 0 128 :::2376 :::* users:(("dockerd",pid=2677,fd=6))

在主机上没有相应的IPv4或IPv4映射的IPv6套接字。

来自不同主机的Docker客户端调用使用IPv4地址,不会从服务器获得任何响应,tcpdump表示该守护进程根本不响应它们。如果我使用nc打开IPv4套接字,两个主机可以正常通信。

我的问题当然可能是另一个原因,但是现在我想排除这种可能性。有没有人有任何想法?

linux sockets docker ipv6 ipv4
1个回答
0
投票

不要认为这是一个Docker问题,如果你授权所有人没有任何限制或只有端口,它将显示为打开的ipv6端口,但它仍然可用于ipv4。

这只意味着开放而不限制端口号......这里的答案比我的更清楚:https://unix.stackexchange.com/questions/152612/netstat-why-are-ipv4-daemons-listening-to-ports-listed-only-in-a-inet6

© www.soinside.com 2019 - 2024. All rights reserved.