【问题标题】:Docker tcp can only use "localhost" but not "127.0.0.1" or ip to connectDocker tcp 只能使用“localhost”而不能使用“127.0.0.1”或ip 连接
【发布时间】:2020-05-29 06:55:26
【问题描述】:

我已经在 ubuntu18.04 上安装了最新的 docker 版本并且我已经配置了这个文件:

$ cat /etc/systemd/system/docker.service.d/hosts.conf
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

然后:

sudo systemctl daemon-reload
sudo systemctl restart docker.service

现在我可以看到 docker start with remote tcp:

ps -ef|grep docker
root     16142     1  0 14:08 ?        00:00:00 /usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

所以现在我可以:

docker -H tcp://localhost:2375 version

它可以工作并打印:

Client: Docker Engine - Community
Version:           19.03.5
API version:       1.40
Go version:        go1.12.12
Git commit:        633a0ea838
Built:             Wed Nov 13 07:29:52 2019
OS/Arch:           linux/amd64
Experimental:      false

Server: Docker Engine - Community
Engine:

但是我不能使用“127.0.0.1”或者ip访问:

docker -H tcp://l27.0.0.1:2375 version
Client: Docker Engine - Community
Version:           19.03.5
API version:       1.40
Go version:        go1.12.12
Git commit:        633a0ea838
Built:             Wed Nov 13 07:29:52 2019
OS/Arch:           linux/amd64
Experimental:      false
error during connect: Get http://l27.0.0.1:2375/v1.40/version: dial tcp: lookup l27.0.0.1: no such host

另外,使用 ip 失败:

$ ifconfig|grep inet
    inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
    inet6 fe80::42:8fff:feac:e6fd  prefixlen 64  scopeid 0x20<link>
    inet 10.190.151.77  netmask 255.255.252.0  broadcast 10.190.151.255
    inet6 fe80::215:5dff:febd:e523  prefixlen 64  scopeid 0x20<link>
    inet 127.0.0.1  netmask 255.0.0.0
    inet6 ::1  prefixlen 128  scopeid 0x10<host>

这也会失败:

docker -H tcp://10.190.151.77:2375 version

我已经通过“sudo ufw disable”禁用了防火墙。不确定我是否应该配置 docker 或 ubuntu 网络?只是想知道为什么会发生这种情况以及如何使其发挥作用?

【问题讨论】:

  • 任何可以访问 Docker 守护进程的人都可以轻松地 root 系统。这个 Docker -H 选项意味着本地运行的任何进程都可以执行诸如读取和写入主机的 /etc/shadow 文件之类的操作,或者更糟。我强烈建议立即关闭此选项。

标签: docker tcp server ip connect


【解决方案1】:

我发现了你的问题!

你用“小写 L”而不是 127.0.0.1 ^^' 写了 l27.0.0.1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    • 2018-04-24
    • 2016-11-28
    • 1970-01-01
    • 2016-09-22
    • 2015-11-08
    • 2017-12-14
    相关资源
    最近更新 更多