如何禁用Docker Compose中的用户空间代理

11

如何禁用"userland-proxy",以便在使用"docker-compose"时其被禁用。

我尝试运行docker-compose up --userland-proxy=false,但没有成功。

1个回答

26

禁用用户代理是全局配置,配置在守护进程级别。您无法从客户端更改此配置,因此无法从docker compose更改。

要禁用代理,您需要更改守护进程配置(请参见dockerd reference)。 您可以按照以下步骤执行此操作(这些步骤应在运行守护进程的主机上完成);

如果不存在,请创建名为/etc/docker/daemon.json的文件,并添加"userland-proxy": false设置。 daemon.json文件应该是有效的JSON; 如果这是该文件中唯一的配置,则应如下所示;

{
    "userland-proxy": false
}

保存文件后,使用以下命令重新启动守护进程(如果您的主机使用 systemd):

sudo systemctl restart docker

注意:在Docker for Mac和Docker for Windows上,无法禁用用户空间代理(userland-proxy),因为它是网络的必要组成部分(即允许将对localhost的连接转发到容器)。


感谢您关于Mac和Windows的说明。这真是太糟糕了。打开许多端口需要很长时间... - Fr4nc3sc0NL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接