我怎么知道 userland-proxy 实际上已经启用/禁用了?

Men*_*hak 3 docker centos7

我有一个带有 Docker 17.05.0-ce 的 CentOS 7.4 VM,我正在尝试将其配置为某些 docker 容器的主机。

给我的指导之一是禁用用户空间代理。我创建了一个/etc/docker/daemon.json

{
    "userland-proxy": false
}
Run Code Online (Sandbox Code Playgroud)

我的问题 - 如果我将该值设置为 true,我可以在系统的其他地方查看什么或测试(iptables?docker info?)以查看切换该值会产生什么不同?

我相信我的问题源于不完全理解 userland-proxy 是什么,尽管阅读了网络页面

BMi*_*tch 5

我个人保留此选项,因为在尝试禁用它时存在未解决的问题

代理进程在主机上运行,​​以便在您发布容器时将端口从主机转发到您的容器中。禁用用户态代理将行为切换为仅使用 iptables 规则而不是用户态进程运行。

如果启用了用户代理,您将docker-proxy在发布端口时看到启动的进程:

$ docker run -p 8888:80 -d --name nginx_test nginx
ee6f2868ed6f4dd2519f8c538cf969552cc36315ae0ce02c5c2939a325541f76

$ ps auxw | grep docker-proxy
root      7366  0.0  0.0 108128  2396 ?        Sl   10:19   0:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8888 -container-ip 172.17.0.2 -container-port 80

$ docker rm -f nginx_test
nginx_test
Run Code Online (Sandbox Code Playgroud)