我有一台装有 Docker 17.05.0-ce 的 CentOS 7.4 VM,我正尝试将其配置为某些 docker 容器的主机。
给我的指导之一是禁用用户空间代理。我创建了/etc/docker/daemon.json
一个
{
"userland-proxy": false
}
我的问题是 - 如果我将该值设置为 true,我可以在系统的其他地方查看什么或进行测试(iptables?docker 信息?)以查看切换该值会产生什么不同?
我相信我的问题源于没有完全理解 userland-proxy 是什么,尽管读过网络页面。
答案1
我个人保留此选项,因为尝试禁用时仍存在未解决的问题。
代理进程在主机上运行,用于在发布容器时将主机上的端口转发到容器中。禁用用户空间代理会将行为切换为仅使用 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