Generic placeholder image
闲敲代码、落灯花
What's past is prologue

联系邮箱:email@hezehua.net


联系QQ:1907330840

座右铭

保持热情,持续学习,每日精进

docker容器内服务访问宿主机服务

docker容器内服务访问宿主机服务

本文与作者在csdn上的博文【docker容器内服务访问宿主机服务】保持同步


本文背景:
操作系统:macOs
笔者的docker虚拟机中运行了nginx、node服务用来部署一个前后端分离的网站,但是由于docker内的node服务运行效率极低,每次代码更新后也不会自动重新编译,所以准备将node服务部署在宿主机上。

遇到问题:
原本,nginx内配置了代理转发到node服务端口:

  location / {
        proxy_pass http://localhost:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
    }

但是,将node服务部署在宿主机上之后,就不能直接通过 http://localhost:8000访问了,会报错502,也就是说,容器内访问localhost是无法访问到宿主机的。

网上有很多方法:
1、docker for mac ,容器内可以通过 域名:docker.for.mac.host.internal 来访问宿主机,本人实测,使用该域名还是没有访问到宿主机
2、还有一种解决方案是,在安装Docker的时候,会在宿主机安装一个虚拟网关 docker0 ,我们可以使用宿主机在 docker0 上的IP地址来代替 localhost,但是实测没有该虚拟网关,可能是是操作系统原因。

最佳实践的解决方案:
通过ifconfig查看到网络状态,找到 status:active 的 ip 地址,在容器内ping一下,如果能ping通,就使用该ip在容器内访问宿主机。

猜你喜欢
配置NFS固定端口
阅读 189

NFS启动时会随机启动多个端口并向RPC注册,为了设置安全组以及iptables规则,需要设置NFS固定端口。 NFS服务需要开启 mountd,nfs,nlockmgr,portmapper,rquotad这5个服务,其中nfs、portmapper的端口是固定的,另外三个服务的端口是随机分配的...

AWS EC2启动Centos实例以及设置root密码登录
阅读 555

一、在控制台的左边面板选择“实例”,再点击“启动实例”,在“选择一个Amazon系统镜像”步骤中,点击“AWS Marketplace”,再搜索centos,选择需要的版本,接下来一直continue即可,其中有一个步骤会生成一个密钥文件,这个很重要,保存好,直到完全启动一个实例。 二、在控制台...

私有GIT服务器的免密提交
阅读 185

1、 客户端生成用户公钥,在git bash中执行: ssh-keygen -t rsa 将生成的id_rsa.pub文件上传到git服务器的/home/git目录下。 2、在服务器中/home/git路径下新建 .ssh 目录,并执行: cat id_rsa.pub &...

记一次Git pull之后Permission denied的解决方案
阅读 205

上下文: 在我的一台linux服务器上配置了git服务器,并且在本机上运行一个网站,这个网站的git库就是本机的git服务器,本来将本机的公钥加入到git服务器的authorized_keys文件中了(root角色操作),可以无密码使用git远程库,而且为了安全性禁止git账户shell...

在centos服务器上安装配置私人邮箱,并在web端管理邮件
阅读 146

出于技术上的好(zhuang)奇(bi),我想搭建一个自己的邮箱服务器,这样的话,以后的个人资料上面可以带上一个自己域名的邮箱,再也不怕简历带qq邮箱被嫌弃了。首先是了解一下基本的邮件协议:POP3:邮局协议第三版本,主要用于从邮件服务器中检索邮件,并把所有的邮件信息立即下载到用户的计算机上...

vi批量缩进
阅读 214

进入vi后,点击v进入VISUAL模式,再使用上下箭头选择行,按”<”,”>”操作缩进。

centos 中查找文件、目录、内容
阅读 281

1、查找文件 find / -name 'filename' 2、查找目录 find / -name 'path' -type d 3、查找内容 find . | xargs grep -ri 'content' //find . | xargs grep -ril 'content...

openssh升级后无法登陆解决方案
阅读 259

1、openssh升级后,终端登陆会提示:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 应该在终端的~/.ssh/known_hostswe文件中将服务器ip对应的公钥信息删除再尝试登陆。 2、解决WARNING: REMOTE HOST I...