Joh*_*han 47 docker boot2docker docker-machine
由于boot2docker已弃用,我已切换到docker-machine但我不知道如何打开端口docker-machine.在boot2docker我可以这样做:
boot2docker ssh -L 27017:localhost:27017
Run Code Online (Sandbox Code Playgroud)
只要SSH连接打开,这就会将端口27017从VirtualBox转发到localhost 27017.请注意,我不是在寻找一种在VirtualBox中永久打开端口的方法.我怎样才能实现这一目标docker-machine?
Von*_*onC 46
您仍然可以从docker机器使用的VirtualBox访问VBoxmanage.exe命令:
VBoxManage controlvm "boot2docker-vm" natpf1 "tcp-port27017,tcp,,27017,,27017";
Run Code Online (Sandbox Code Playgroud)
docker-machine info让您的虚拟机的名称.modifyvm如果VM尚未启动.请参阅此答案中的实际示例.
这是当前的解决方法,等待将参数传递给的可能性docker-machine ssh:参见问题691.
另一种解决方法是不转发端口,直接使用VM的IP:
$(docker-machine ip default)
Run Code Online (Sandbox Code Playgroud)
您可以使用确认正确设置端口转发
VBoxManage showvminfo boot2docker-vm | grep "NIC.* Rule"
Run Code Online (Sandbox Code Playgroud)
Dav*_*vid 26
使用最新版本的机器,您可以简单地执行(默认为机器名称):
docker-machine ssh default -L 27017:localhost:27017
Run Code Online (Sandbox Code Playgroud)
这是比VM配置更改更临时的解决方案.
使用以下变体仅在后台进程中转发端口:
docker-machine ssh default -f -N -L 27017:localhost:27017
Run Code Online (Sandbox Code Playgroud)
小智 17
您可以ssh进入计算机并传递常规端口转发参数:
ssh docker@$(docker-machine ip default) -L 27017:localhost:27017
Run Code Online (Sandbox Code Playgroud)
docker用户的密码是tcuser.(见https://github.com/boot2docker/boot2docker)
由于我很难记住如何做到这一点,我创建了一个名为pf的小bash脚本(代表"port forward"),它允许你做:
$ pf 8080
Run Code Online (Sandbox Code Playgroud)
这将在后台将docker端口8080转发到主机端口8080(附加-f以使其在前台运行).要使用其他主机端口,请执行以下操作:
$ pf 8090:8080
Run Code Online (Sandbox Code Playgroud)
它将主机端口8090映射到8080.
要停止端口转发,请添加-s:
$ pf 8090:8080 -s
Run Code Online (Sandbox Code Playgroud)
(实际上主机端口也足够了:) pf 8090 -s.还有其他选项可用,请查看github页面.
| 归档时间: |
|
| 查看次数: |
33238 次 |
| 最近记录: |