我很想创建这样的新docker容器:
docker run -d -p5050:443 --name=free-proxy -v proxy-config:/data -e telegrammessenger/proxy:latest
此命令成功创建了一个新容器。现在我想限制这个容器,只能使用主机名而不是IP地址。 我尝试这个命令:
docker run -d -ptest.com:5050:443 --name=fourth-proxy -v proxy-config:/data -e telegrammessenger/proxy:latest
但是我收到了这个错误:
docker: Invalid ip address: test.com.
我只希望我的容器只能使用主机名(而不是IP地址。)
注:的 我想从外面访问我的容器只有主机名。 如果客户端使用IP地址,则无法使用代理:
tg://proxy?server=4.2.2.4&port=5050 (not acceptable)
tg://proxy?server=test.com&port=5050 (acceptable)
答案 0 :(得分:2)
Docker在L4层发布端口,它不会查看可能包含主机名的L7数据。监听tcp / ip端口时唯一的东西是端口号和网络接口(由ip地址表示)。
要按主机名过滤,您需要将此逻辑放在应用程序中,或者在应用程序前设置代理以进行过滤。有几个反向代理可以做到这一点,包括traefik,nginx和haproxy。