You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker for Mac中如何将容器映射到localhost以外的主机名

解决Mac上通过http://api访问Nginx容器的问题

首先得点明你困惑的核心:现在Mac上的Docker Desktop已经不需要依赖docker-machine来创建虚拟机了!docker-machine是早年Docker在Mac/Windows上的过渡方案,如今的Docker Desktop直接以原生方式运行,和你的主机共享本地网络栈,所以之前的思路需要调整。

下面是具体的实现步骤:

1. 正确运行Nginx容器并映射端口

确保你启动Nginx容器时,把容器的80端口映射到主机的对应端口(优先选80端口,这样访问时不用加端口号),命令如下:

docker run -d -p 80:80 --name my-nginx nginx

如果主机80端口被其他服务占用,也可以映射到其他端口(比如8080):

docker run -d -p 8080:80 --name my-nginx nginx

2. 修改Mac的hosts文件

现在需要让api这个域名指向你的本地主机(因为容器端口已经映射到主机):

  • 打开终端,用管理员权限编辑hosts文件:
    sudo nano /etc/hosts
    
  • 在文件末尾添加一行:
    127.0.0.1 api
    
  • 按Ctrl+O保存,Ctrl+X退出编辑器。

3. 验证访问

现在打开浏览器输入http://api,就能看到Nginx的默认欢迎页面了。如果之前映射的是8080端口,需要访问http://api:8080。

额外说明(局域网访问需求)

如果你想让同一局域网内的其他设备也能通过http://api访问容器:

  • 先找到你的Mac局域网IP(比如192.168.1.100,可通过ifconfig或系统偏好设置-网络查看)
  • 把hosts文件里的127.0.0.1换成这个局域网IP:
    192.168.1.100 api
    
  • 同时让其他设备的hosts文件也添加同样条目,就能实现跨设备访问。

内容的提问来源于stack exchange,提问作者Jason Strimpel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:17:48