docker - 将主机名绑定(bind)到容器 docker

标签 docker

我厌倦了像这样创建新的 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)

最佳答案

Docker 在 L4 层发布端口,它不会查看可能包含主机名的 L7 数据。在 tcp/ip 端口上监听时,您唯一拥有的是端口号和网络接口(interface)(由 ip 地址表示)。

要按主机名过滤,您需要将此逻辑放在您的应用程序中,或者在您的应用程序前面设置一个代理来执行过滤。有几种反向代理可以执行此操作,包括 traefik、nginx 和 haproxy。

关于docker - 将主机名绑定(bind)到容器 docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50675164/

相关文章:

docker - 如何重命名 Bluemix namespace (容器注册表)?

mysql - Docker - 多个重复卷声明;怎么了?

docker - 为 Github 项目创建 Docker 镜像

c# - ImageMagick 不能在 docker 环境中工作

Docker 403 on push latest to private

curl - Docker 容器内无法访问主机

linux - 在linux中为.net Core(Docker)编写txt文件

docker - 我可以在Docker上设置Neo4j以便在第一次运行时导入CSV文件吗?

docker - CORS header 两次响应

elasticsearch - 停止的 docker 容器中的磁盘管理(清理)