如何将Docker IP转发到网络的其余部分?

时间:2017-03-13 06:56:34

标签: docker virtualbox docker-machine

所以我有一台运行nextcloud的dockerised实例的服务器,我可以通过服务器上的浏览器访问它。我想在我的整个局域网上都可以访问它,这样我就可以移植它并在任何地方访问它。我正在使用kitematic和virtualbox运行docker。

运行服务器的IP是:192.168.178.28

我可以访问服务器上的docker实例的IP是:192.168.99.100:32768

编辑:服务器在Windows Server 2016上运行

1 个答案:

答案 0 :(得分:1)

由于您的服务在Docker-Machine中的本地IP地址上运行(从IP地址的外观),您可以使用类似nginx的内容将其暴露给网络的其余部分。

安装nginx,然后将其配置更新为从外部端口转发到dockerised应用程序。在Mac上,您可以使用nginx安装brew install nginx(如果您已安装homebrew)。对于其他操作系统,请查看nginx documentation

设置反向代理的配置应如下所示:

http {
  server {
    # This is the external port
    listen 8080;
    access_log /usr/local/var/logs/nginx-rest-8080.access.log  main;

    location / {
      proxy_pass          http://192.168.99.100:8082/;
      proxy_set_header    Host $http_host;
    }
  }  
}

这将导致nginx侦听外部IP地址的端口8080,然后将所有请求转发到您的dockerised服务,假设它可以在端口8082上访问。根据需要进行调整...