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

如何从本地连接Docker容器内Kubernetes运行的AWX应用?

可行,以下是几种正确的操作方式

首先明确:你当前的AWX服务在Docker容器内的Kubernetes集群中,节点IP是192.168.49.2,NodePort为30085。之前的方法无效是因为kubectl proxy仅用于代理Kubernetes API,而非直接转发应用流量;host.docker.internal是容器访问本地主机的入口,反过来不适用。

方法一:kubectl端口转发(最通用)

直接将AWX的Service或Pod端口转发到本地主机,无需依赖集群网络配置:

  1. 先确认AWX的Service名称,执行:
    kubectl get svc -n awx  # 假设AWX部署在awx命名空间,无命名空间则去掉-n awx
    
  2. 找到对应Service后,执行端口转发命令(以Service名称为awx-service、容器内端口为80为例):
    kubectl port-forward svc/awx-service 30085:80 --address 0.0.0.0 -n awx
    
    若要直接转发Pod,替换为目标Pod名称:
    kubectl port-forward pod/awx-xxxx-xxxx 30085:80 --address 0.0.0.0 -n awx
    
  3. 此时本地主机可通过http://localhost:30085访问AWX,同网络下其他设备也能通过主机IP:30085访问(--address 0.0.0.0允许外部接入)。

方法二:映射Docker容器端口到主机

因为你的Kubernetes集群本身运行在Docker容器内,只需将该容器的30085端口映射到主机:

  1. 停止当前运行的Docker容器:
    docker stop <container-id>
    
  2. 重新启动容器时添加端口映射参数:
    docker run -d -p 30085:30085 <your-awx-k8s-image>
    
  3. 启动完成后,本地主机直接访问http://localhost:30085即可。

方法三:如果使用Minikube(容器内运行K8s常见方案)

若你的Kubernetes是用Minikube在Docker中部署的,可通过minikube tunnel暴露服务:

  1. 在运行Minikube的Docker容器内执行:
    minikube tunnel
    
  2. 该命令会将NodePort/LoadBalancer类型的Service暴露到本地主机网络,此时你可以直接访问http://192.168.49.2:30085(与集群内访问地址一致)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 08:09:19