当前位置: 首页 > 面试题库 >

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

从焱
2023-03-14
问题内容

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

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

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

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

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


问题答案:

因此,您需要使用端口发布的概念,以便可以通过主机的端口访问容器中的端口。使用此功能,您可以从 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参考



 类似资料:
  • 问题内容: 当我启动新容器时,Docker会自动为它们分配一些MAC地址。我很好奇这项作业是否有模式。MAC地址可以更改吗? $泊坞窗网络检查网桥 问题答案: Docker开始为第一个容器分配始终相同的mac ,然后为每个不同的容器将每个mac增加一个。 不知道为什么他们要使用该mac地址。看来与oui数据库中的任何实际供应商都不匹配。查看有关此内容的官方文档。他们说: MAC地址是使用分配给容器

  • 正如标题所说,我正在尝试为我的容器分配更多的内存。我正在使用docker中心的一个名为“aallam/tomcat-mysql”的图像,以防相关。 当我在没有任何特殊标志的情况下正常启动时,内存限制为2GB(即使我读到内存是无界的,如果没有设置) 这是我的码头工人数据 我试着像这样显式地设置内存,但结果相同 我已经读到,可能是虚拟机限制了它。但为什么docker统计数据显示容器大小限制为2GB?

  • 然而,在我创建了另一个docker服务器并创建了其中两个服务器的群并再次尝试运行jenkins jobs之后,它仍然只在原始服务器(现在也是一个管理器)上部署容器。我希望swarm能够平衡负载,并在swarm中均匀地分配新创建的容器。我错过了什么? 也许我必须使用服务吗?

  • 问题内容: 有什么方法可以将分配给容器。因此,容器具有公共IP。客户端可以使用IP访问容器。 问题答案: 对于当前发布的Docker版本,这是不可能的(无需在Docker背后进行大量手动工作),尽管它几乎没有必要。 Docker通过使用端口映射在容器中公开网络服务,并且端口映射可以绑定到主机上的特定IP地址。所以,如果你想有一个在Web服务器,并在另一个网站服务器,首先确保该地址可在主机上: 然后

  • 问题内容: 我们正在使用副本3的docker swarm模式在docker容器中部署风暴超级用户。现在,我们想通过浏览器访问超级用户登录。 我们公开了可以访问Storm UI的端口8080。一切正常。现在,storm也将其日志文件公开在端口8000上。由于我们只有一个nimbus和3个超级用户,因此通过端口8000访问nimbus日志非常容易。 我们在使用docker swarm服务部署的主管上遇

  • 问题内容: 我不确定在这里是否误解了一些东西,但是似乎只能通过从映像创建新容器来设置端口映射。是否可以将端口映射分配给现有Docker容器? 问题答案: 您可以通过直接在以下位置编辑文件 来更改端口映射 您可以通过命令确定[hash_of_the_container] ,“ Id”字段的值为哈希。 因此,您无需使用这种方法来创建图像。您也可以在此处更改重新启动标志。 PS:您可以访问 https: