小编典典

如何在Docker中为容器分配域名?

docker

这些天,我读了很多关于如何设置和运行Docker堆栈的信息。但是我一直想念的一件事是如何设置特定容器通过域名响应访问权限,而不仅仅是使用docker
dns的容器名称。

我的意思是说我有一个可以从外部访问的微服务,例如:users.mycompany.com,它将进入处理用户api的微服务容器

然后,当我尝试访问customer-list.mycompany.com时,它将进入处理客户列表的微服务容器

当然,使用docker dns可以访问它们并将它们链接到docker网络,但这仅对于希望访问容器到容器而不是Internet到容器有效。

有人知道我该怎么做吗?或设置它的最佳方法。


阅读 1452

收藏
2020-06-17

共1个答案

小编典典

因此,您需要使用端口发布的概念,以便可以通过主机的端口访问容器中的端口。使用此功能,您可以从 Nginx 设置一个简单的 proxy_pass
,它将重定向到( 假设您将端口发布到 ) __users.mycompany.com``myhost:1337 1337

因此,如果要执行此操作,则需要使用以下命令设置容器以暴露特定端口:

docker run -d -p 5000:5000 training/webapp # publish image port 5000 to host port 5000

然后,您可以从您的主机 卷曲 你的localhost:5000访问容器。

curl -X GET localhost:5000

如果要在前面设置域名,则需要有一个Web服务器实例,该实例允许您将主机名 proxy_pass 传递到容器中。

即在 Nginx中

server {
  listen 80;
  server_name users.mycompany.com;
  location / {
    proxy_pass http://localhost:5000;
  }
}

我建议您遵循本教程,并检查docker
run参考

2020-06-17