我有linux机器,安装了docker,也可以作为NAT路由器使用。它有多个接口,我需要docker默认只与其中一个进行通信。经过几个小时尝试自定义网络,我找到的最佳解决方案是在指定端口映射时设置接口IP:
docker run -p 192.168.0.1:80:80 -d nginx
其中192.168.0.1
是我的界面IP。是否可以将docker设置为每次都使用该IP(接口)?例如。当我下载某人的docker-compose.yml并使用它而不做任何更改。
你可以为/etc/docker/daemon.json
添加“ip”选项:
{
[...]
"ip":"192.168.0.1"
}
重新启动服务后,端口将在此接口上公开,而不是默认的0.0.0.0
。
afaik,daemon.json文件可以接受dockerd本身定义的任何选项:https://docs.docker.com/engine/reference/commandline/dockerd/