gpt4 book ai didi

docker - 无法从主机按名称 ping docker 容器

转载 作者:行者123 更新时间:2023-12-02 19:16:41 29 4
gpt4 key购买 nike

我的服务器上有很多容器,我需要按名称(而不是 IP)访问所有容器。
当然,我可以通过 IP 地址 ping 容器。
问题是我无法通过主机名或名称 ping 它们。
另外,我不使用 docker-compose。我使用 docker 文件和 docker restapi

最佳答案

选项 A:运行 DNS 代理服务器容器
这是 DNS proxy server可以做到这一点的项目:https://github.com/mageddo/dns-proxy-server

首先,您需要启动 DNS 代理服务器:

docker run --rm --hostname dns.mageddo -v /var/run/docker.sock:/var/run/docker.sock -v /etc/resolv.conf:/etc/resolv.conf defreitas/dns-proxy-server

然后,运行一个虚拟容器并为其分配 --hostname用于测试目的:
docker run -d --hostname=this-can-be-resolved-from-host nginx

最后,尝试从您的主机解析/ping/curl 您在上一步中分配给 nginx 容器的名称:
neo@neo-desktop:~$ nslookup this-can-be-resolved-from-host
Server: 172.17.0.4
Address: 172.17.0.4#53

Non-authoritative answer:
Name: this-can-be-resolved-from-host
Address: 172.17.0.3
Name: this-can-be-resolved-from-host
Address: 172.17.0.3

neo@neo-desktop:~$ ping this-can-be-resolved-from-host
PING this-can-be-resolved-from-host (172.17.0.3) 56(84) bytes of data.
64 bytes from 172.17.0.3 (172.17.0.3): icmp_seq=1 ttl=64 time=0.032 ms
neo@neo-desktop:~$ curl this-can-be-resolved-from-host
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
[...]

选项 B:运行注入(inject)器,将容器名称直接添加到 hosts文件,在 docker 主机上:
(由 OP @Tokyo Developer 找到的解决方案)
这是一个简单的“etc/hosts”文件注入(inject)工具: https://github.com/dvddarias/docker-hoster
运行注入(inject)器容器:
docker run -d \
-v /var/run/docker.sock:/tmp/docker.sock \
-v /etc/hosts:/tmp/hosts \
dvdarias/docker-hoster
运行一个虚拟容器并为其分配 --hostname用于测试目的:
docker run -d --hostname=this-can-be-resolved-from-host nginx
尝试解决 hostname container name从您的主机分配给上一步中的 nginx 容器:
nslookup this-can-be-resolved-from-host
Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
Name: this-can-be-resolved-from-host
Address: 172.17.0.3
nslookup keen_lamarr
Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
Name: keen_lamarr
Address: 172.17.0.3

关于docker - 无法从主机按名称 ping docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63204788/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com