Docker4Windows -- 从外部(非本机host)访问 由docker container运行的程序
背景
当我们在windows 上面运行docker container的时候,我们需要借助于模拟器(例如,Virtual box/Hyper V),她的目的主要是在我们的windows系统上面模拟出一个Linux环境来运行docker engine,从而在实现在windows机器上面跑docker.。通常,我们把这个模拟器称理解为为docker machine。
然而,由此产生了一个问题,那就是相对于Linux,我们在Windows上面跑docker的时候,docker与host之间就多出来了一个中间层(docker machine)。所以,当我们需要在非本机上面访问由container提供的“服务”时,除了expose host/container的端口之外,还需要保证中间层畅通。
设置docker machine
具体的方法很简单,就是通过设置virtual box 的网络配置/转发规则。 具体的步骤如下:
Open Oracle VM VirtualBox Manager
Select the VM used by Docker
Click Settings -> Network
Adapter 1 should (default?) be "Attached to: NAT"
Click Advanced -> Port Forwarding
Add rule: Protocol TCP, Host Port 1521, Guest Port 1521(leave Host IP and Guest IP empty)
貌似有点乱呀,没看懂?没关系!,下面举例说明并配有截图(有真相)
我这里的示例是用docker跑一个oracle server 的container,他运行在一台windows机器上面(Host A),然后我在另一个windows机器(Host B)上面链接oracle server.
1. 我这里省略了部分container 的过程,只列出CLI
$ docker run -itd --name=xxx --network=xxxNet --hostname=xxx -p : oracledb11g_img:v1 /bin/bash
2. virtual box 中关于网络的配置:

3. 在另外一台机器上通过SQL Deverloper 链接由docker continer创建的数据库

Done!! 证明由docker container 承载的 oracle server 可以被其他机器访问。
Docker4Windows -- 从外部(非本机host)访问 由docker container运行的程序的更多相关文章
- 让外部的开发机直接访问Kubernetes群集内的服务!
让外部的开发机直接访问Kubernetes群集内的服务! 1.场景 容器化+K8s编排已经是现在进行时把网站的多个项目设计为云原生(Cloud Native)或老项改造为云原生可以获得诸多能力例如无云 ...
- vs2010用iis5作为调试服务器从而允许非本机电脑访问项目网站
工作的时候经常遇见这2种情况 1,和设备端的同事调程序,但是他们却不能访问vs自带的web服务器 2,写好的程序在vs中运行一点问题都没有,一发布到iis就问题一大堆 后来在终于有了一个比较好的解决办 ...
- docker 安装redis , 让宿主机可以访问
1, docker 拉去最新版本的redis docker pull redis #后面可以带上tag号, 默认拉取最新版本 2, docker安装redis container 安装之前去定义我们的 ...
- CentOS6.5(4)----宿主机无法访问虚拟机中的web服务解决方案
宿主机无法访问虚拟机中的web服务 在Windows7宿主机中的VMware虚拟机中安装了CentOS6.5操作系统,并且基于Nginx搭建了Web服务器,网页刚刚搭建好的时候,通过宿主机的浏览器可以 ...
- ElasticSearch 本机可以访问,外网无法访问----问题解决
问题:本机可以访问,外网无法访问 config/elasticsearch.yml network.host: 0.0.0.0 使用普通用户zuoys,重启es,报错如下: [1]: max file ...
- 解决宿主机不能访问虚拟机CentOS中的站点 | 更新CentOS防火墙设置开启80端口访问
前阵子在虚拟机上装好了centos6.0,并配好了nginx+php+mysql,但是本机就是无法访问.一直就没去折腾了. 具体情况如下 1.本机能ping通虚拟机 2.虚拟机也能ping通本机 3. ...
- wampserver2.5 apache2.4.9:forbidden,本机可以访问,局域网内部能访问。
wampserver2.5 apache2.4.9:forbidden,本机可以访问,局域网内部能访问. 因为做项目,多人分工,需要局域网内访问各自的项目. 然后安装了wampserver2.5,Ap ...
- 解决问题:centos虚拟机安装好nginx,本机无法访问
阵子在虚拟机上装好了centos5.3,并配好了nginx+php+mysql,但是本机就是无法访问.一直就没去折腾了.具体情况如下1.本机能ping通虚拟机2.虚拟机也能ping通本机3.虚拟机能访 ...
- IIS网站本机可以访问但局域网其他机器无法访问 解决方法
在IIS部署网站的时候,发现只有本机可以访问,通过localhost和IP地址都可以,但是当局域网其他机器访问我的网站的时候,无响应. 我的是WIN10的系统 解决方法: 网站所对应的端口必须对外 ...
随机推荐
- 【C++】指针与引用的区别
本文主要总结在C++中指针与引用的区别. 从定义与性质来看指针与引用有如下区别: 指针表示的是一块变量的地址 引用表示一个变量的别名. 因此指针变量需要占用空间(一个指针变量在32位系统下占用4字节, ...
- 时效性福利:MindManager2017 破解攻略
本文目的只是为了长期关注公众的活粉来谋个福利,24小时失效,没有提供盗版的意思 本文贡献的链接只存放2天,要下载的请从速~ 经过几个小时的奋斗,终于搞定了他,逆天我也终于可以从2016升级至2017~ ...
- [SinGuLaRiTy] COCI 2016~2017 #5
[SinGuLaRiTy-1012] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 最近神犇喜欢考COCI...... 测试题目 对于所有的 ...
- CSS3学习笔记(3)-CSS3边框
p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...
- Android软键盘遮挡布局的那些事
有朋友提到软键盘遮挡布局的问题,说网上找了很多资料都未能解决,下面我来总结一下那些事,有些内容也是从网友那里学来的,但是我都会自己验证正确了才会贴出来. 首先来分析下我们常见的遮挡问题有哪些(本次所说 ...
- shiro基础学习(四)—shiro与项目整合
一.认证 1.配置web.xml 2.配置applicationContext.xml 在applicationContext.xml中配置一个bean,ID和上面的过滤器的名称一致. ...
- .NET Core 2.0及.NET Standard 2.0
.NET Core 2.0的发布时间,.NET Core 2.0预览版及.NET Standard 2.0 Preview大概在5月中旬或下旬发布. .NET Core 2.0正式版本发布时间大约在Q ...
- BS结构中,web如何将数据进行DES加密并写道IC卡中
在IC卡应用系统中,一般都要对IC卡数据进行DES加密,以保证数据的安全.友我科技RFID读写器云服务2.0充分考虑了这个需求,只需要软件工程师简单的配置即可实现数据的加解密并且写到数据块中.如下图所 ...
- node.js 中模块的循环调用问题详解
首先,我们看一下图示代码,每一个注释其实代表一个 js 文件.所以下面其实是三个 js 文件 .第一个是我们要运行的 main 文件,后面两个是 a, b 文件. 从上面可以看书 a ,b 两个模 ...
- 关于DCL的使用
DCL1 创建用户语法:CREATE USER 用户名@地址 IDENTIFIED BY '密码';CREATE USER user1@localhost IDENTIFIED BY '123'; C ...