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 ...
随机推荐
- bzoj1025 [SCOI2009]游戏 动态规划
题目描述 对于一些长度为n的排列,将其作为一个置换,那么可能有一个自置换的次数使其回到1,2,3,...,n的情况.求对于所有能够回到1,2,3..,n的排列,不同的次数共有多少种. 题解来自黄学长 ...
- time---统计命令所花费的总时间
time命令用于统计给定命令所花费的总时间. 语法 time(参数) 参数 指令:指定需要运行的额指令及其参数. 实例 当测试一个程序或比较不同算法时,执行时间是非常重要的,一个好的算法应该是用时最短 ...
- 【Codeforces Round #422 (Div. 2) C】Hacker, pack your bags!(二分写法)
[题目链接]:http://codeforces.com/contest/822/problem/C [题意] 有n个旅行计划, 每个旅行计划以开始日期li,结束日期ri,以及花费金钱costi描述; ...
- 洛谷 P1703 那个什么密码2
P1703 那个什么密码2 题目背景 https://www.luogu.org/problem/show?pid=1079 题目描述 与原题一模一样.具体不同请见输入格式 输入输出格式 输入格式: ...
- [Python] Array Attributes of Numpy lib
Attributes of numpy.ndarray: numpy.ndarray.shape: Dimensions (height, width, ...) numpy.ndarray.ndim ...
- linux系统 硬链接和软链接
背景: 当几个用户同在一个项目里工作时.经常须要共享文件. 假设一个共享文件同一时候出如今属于不同用户的不同文件夹下.工作起来就非常方便. 比如B和C文件夹下有一文件D是两者都能够訪问和改动的共享文件 ...
- 如何调试Blink?
内容 尽管有很多工具和技巧可用于调试Blink,这个文章的重点调试Blink除布局測试之外的feature. 1 介绍 2 Linux 2.1 入门 2.2 启动Debugger 3 实用的工具 3. ...
- spring之DelegatingFilterProxy
DelegatingFilterProxy是一个标准servlet Filter的代理,代理实现了Filter接口的spring管理的Bean.支持一个在web.xml的init-param定义的&q ...
- 打印机共享 : 客户端 连接服务器打印机时提示"无法连接到打印机“
1.就是重启一下服务器端的Print Spooler服务就行了,这么简单! 2.修改打印机的共享名 操作无法完成(错误0x00000709).再次检查打印机名称,并确保打印机已连接到网络.(xp系统本 ...
- JS之字符串和数组
字符串: 属性: length:可以获取字符串的长度: <script type="text/javascript"> var str = "haha&quo ...