Mac使用Docker-machine訪问docker publish port
Step 1、Export the port in your container(docker-machine or boot2docker)
首先,要保证你公布port的image已经run起来了。假设你是通过Dockerfile build起来的image。注意在image里面加上以下的一段话:
Expose 80
假设你须要公布其它port,仅仅需把80改变就可以。
Expose这个命令的意思是docker image公布一个port。
然后你须要将基于这个容器的image指定一个port去绑定:
docker rum -p 80:80 -d YOUR_IMAGE
-p选项的含义是把80port绑定在主机的80port(这里的“主机”指docker-machine或者boot2docker容器)
假设你不想在你的mac或者windows上通过http://localhost:80的方式去訪问,到这就能够结束了。
你能够通过你docker-machine或者boot2docker的ip去訪问。
$docker-machine ip MACHINE_NAME
192.168.99.100
这里我就能够通过http://192.168.99.100:80去訪问我公布的image
Step 2、Configure VirtualBox
大家都知道docker-machine和boot2docker本身是不能直接在mac或windows下执行的,它必须依附一个VM,这里的VM就是VirtualBox。怎样让我们在本机訪问docker里公布的应用,这里就须要打开VirtualBox的port forwarding。
执行下面命令通过ssh去转发OSX/Windows的80port到boot2docker/docker-machine VM的80port:
$ boot2docker ssh -vnNTL *:80:localhost:80
或者你能够设置VirtualBox的參数来进行port转发:
$ VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8000,tcp,,80,,80";
假设你的VM还在running,你须要执行下面命令:
$ VBoxManage controlvm "boot2docker-vm" natpf1 "tcp-port8000,tcp,,80,,80";
如今你能够通过localhost:80去訪问了。
假设你有非常多容器公布同一个port,你有必要使用docker的动态转发
For example, running 3 nginx containers:
container-1 : 80 -> 49153 (i.e. docker run -p 49153:80 ...)
container-2 : 80 -> 49154 (i.e. docker run -p 49154:80 ...)
container-3 : 80 -> 49155 (i.e. docker run -p 49155:80 ...)
使用VBoxManage modifyvm命令转发49XXXport。
这样的方法能够非常easy做到同一时候转发。
# vm must be powered off
for i in {49000..49900}; do
VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port$i,tcp,,$i,,$i";
VBoxManage modifyvm "boot2docker-vm" --natpf1 "udp-port$i,udp,,$i,,$i";
done
假设须要删除公布的port,能够这么做:
# vm must be powered off
for i in {49000..49900}; do
VBoxManage modifyvm "boot2docker-vm" --natpf1 delete "tcp-port$i";
VBoxManage modifyvm "boot2docker-vm" --natpf1 delete "udp-port$i";
done
另公布jboss会发现外部无法訪问,这是由于jboss应用仅仅对localhost有效,假设想让外部訪问。必须在启动命令后面加上
<strong><span style="font-size:24px;">-b 0.0.0.0</span></strong>
这样就绑定了全部ip,不然仅仅有本机可以进行訪问。
Mac使用Docker-machine訪问docker publish port的更多相关文章
- Docker Machine批量安装docker host
Dokcer Machine Docker Machine 可以批量安装和配置 docker host 提高docker的安装效率 同时减少人工安装操作的失误 [root@localhost ...
- 2.docker machine 创建 包含 docker 的 linux 虚拟机
1. 启动 从https://github.com/boot2docker/boot2docker/releases下载iso到~/.docker/machine/cache/里 docker-mac ...
- Docker Machine
Docker Machine http://dockone.io/article/1485?utm_source=tuicool&utm_medium=referral 本地安装与使用 Doc ...
- Docker三剑客之Docker Machine
一.什么是Docker Machine Docker Machine 是Docker官方编排项目之一,使用go语言编写的,使用不同引擎在多种平台上快速的安装Docker环境,开源地址:https:// ...
- Docker Machine 详解
笔者在<Docker Machine 简介>一文中简单介绍了 Docker Machine 及其基本用法,但是忽略的细节实在是太多了.比如 Docker 与 Docker Machine ...
- 安装 Docker Machine - 每天5分钟玩转 Docker 容器技术(45)
前面我们的实验环境中只有一个 docker host,所有的容器都是运行在这一个 host 上的.但在真正的环境中会有多个 host,容器在这些 host 中启动.运行.停止和销毁,相关容器会通过网络 ...
- Docker教程:docker machine的配置和命令
http://blog.csdn.net/pipisorry/article/details/50921335 安装virtualbox 如果要使用virtualbox,首先要安装virtualbox ...
- 第 7 章 多主机管理 - 045 - 安装 Docker Machine
安装 Docker Machine 先安装docker 官方安装docker-machine的文档地址:https://docs.docker.com/machine/install-machine/ ...
- Docker Machine 和 Docker Engine 的区别
Docker Engine 当人们提到 Docker,一般而言,大家说的是 Docker Engine,如下图: 它是一个 client-server application. Docker Eng ...
随机推荐
- [NOIP2016普及组]魔法阵
题目:洛谷P2119.Vijos P2012.codevs5624. 题目大意:有n件物品,每件物品有个魔法值.要求组成魔法阵(Xa,Xb,Xc,Xd),该魔法阵要满足Xa<Xb<Xc&l ...
- Linux 下安装 redis 详情
一:将redis 压缩包上传到 Linux usr/local下 (一):在local 下创建一个 redis 目录 (二):上传redis压缩包到此目录下. 二:Linux 进入 local目录下 ...
- CSS动画框架Loaders.css +animate.css
CSS加载动画框架Loaders.css 是一款非常出色的加载动画框架,Loaders.css利用纯CSS可以实现很多种样式的Loading加载动画,这些动画并不需要图片来辅助,而是仅仅需要CSS即可 ...
- 最全Pycharm教程(10)——Pycharm调试器总篇
最全Pycharm教程(1)--定制外观 最全Pycharm教程(2)--代码风格 最全Pycharm教程(3)--代码的调试.执行 最全Pycharm教程(4)--有关Python解释器的相关配置 ...
- QString::toStdString() crashes
今天在Qt中开发程序时,遇到一个QString::toStdString()的内存问题,用法如下: void test(const QString& theFileName) { std::s ...
- HDU4565 So Easy! 矩阵高速幂外加数学
easy 个屁啊,一点都不easy,题目就是要求公式的值,但是要求公式在最后的取模前的值向上取整.再取模,无脑的先试了高速幂 double fmod来做,结果发现是有问题的.这题要做肯定得凑整数,凑 ...
- Sam做题记录
Sam做题记录 Hihocoder 后缀自动机二·重复旋律5 求一个串中本质不同的子串数 显然,答案是 \(\sum len[i]-len[fa[i]]\) Hihocoder 后缀自动机三·重复旋律 ...
- OSSIM(开源安全信息管理系统)在企业网络管理中的应用
国内首个Ossim技术交流群(179084574),欢迎加入我们 参与51CTO[第242期]OSSIM,企业信息安全管理利器热门技术讨论 650) this.width=650;" bor ...
- VBA关闭工作簿和退出Excel
VBA关闭工作簿和退出Excel链接:http://www.excelpx.com/thread-233045-1-1.html 兰色幻想VBA基础入门和高级开发全套80集视频教程,助你成为VBA开发 ...
- Node书签
1.开源项目 [译]过去一年25个惊人的开源Node.js项目(2018版) 百度网盘下载助手