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

克里斯托弗·托马斯(Christopher Thomas):

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

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

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

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

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

MagicMicky:

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

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

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参考

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章