在Windows中使主机名下的docker机器可用

Ste*_*ich 9 virtualbox docker docker-machine docker-for-windows

我正在尝试通过主机名为我的Windows提供一个docker机器.创建之后就像

docker-machine create -d virtualbox mymachine
Run Code Online (Sandbox Code Playgroud)

并设置一个公开端口80的docker容器,如何为该docker机器提供一个主机名,以便我可以在我的浏览器中输入" http:// mymachine / "来加载网站?当我将"mymachine"更改为实际的IP地址时,它可以工作.

这个问题有一个答案,但我想在文件中没有条目的情况下实现它.那可能吗?hosts

M03*_*M03 7

您可能需要参考docker documentaion:https: //docs.docker.com/engine/userguide/networking/#exposing-and-publishing-ports

您可以使用Dockerfile中的EXPOSE关键字或--expose标志将端口暴露给docker run.公开端口是记录使用哪些端口但实际上不映射或打开任何端口的方法.公开端口是可选的.

您使用--publish或--publish-all标志将端口发布到docker run.这告诉Docker在容器的网络接口上打开哪些端口.发布端口时,除非在运行时指定要在主机上映射到的端口,否则它将映射到主机上的可用高阶端口(高于30000).在构建映像时(在Dockerfile中),无法指定要在主机上映射到的端口,因为无法保证端口在运行映像的主机上可用.

我还建议检查-P标志,因为它与-p one 不同.

此外,我建议您尝试Windows或Mac的"Kitematic",https: //kitematic.com/ .它更简单(但不要忘记在任何更改后提交!)

现在关于你公司的网络,它与docker无关,只要你在你的计算机上本地使用docker就不管你的公司设置什么配置都没关系.即使您不必更改任何VM网络配置以向本地主机公开内容,如果您使用Vbox(适配器1 ==> NAT和适配器2 ==>主机),默认情况下都会默认

希望这是你正在寻找的


Ham*_*ail 4

如果目标是让多个开发人员保持尽可能简单,那么这localhost将是您最好的选择。只要您公开和发布的端口在主机上可用,您就可以在浏览器中使用http://localhost 。如果它是除 之外的端口80/443,只需附加它,如http://localhost:8080

如果您确实不想走/etc/hostslocalhost路线,您也可以购买一个域名并将其路线到127.0.0.1. 本文详细介绍一些细节。

例子:

dave-mbp:~ dave$ traceroute yoogle.com
traceroute to yoogle.com (127.0.0.1), 64 hops max, 52 byte packets
1  localhost (127.0.0.1)  0.742 ms  0.056 ms  0.046 ms
Run Code Online (Sandbox Code Playgroud)

或者,如果您不想购买自己的域并且所有开发人员都在同一网络上并且您能够控制 DHCP/DNS,则可以设置自己的 DNS 服务器以包含返回127.0.0.1. 与公共 DNS 选项的概念类似,但更脆弱一些,因为您可能允许您的开发人员在受控网络之外进行远程工作。