Raj*_* .E 7 portforwarding docker docker-container
我已经设置了Docker容器来访问我的机器docker容器到本地的另一台机器.
在命令下创建一个容器:
docker run -it -d --name containerName -h www.myhost.net -v /var/www/html -p 7000:8000 --net mynetwork --ip 172.11.0.10 --privileged myimagename bash
Run Code Online (Sandbox Code Playgroud)
创建容器详细信息后:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1e1e5e9b74b4 myimgaename "bash" 21 minutes ago Up 6 minutes 0.0.0.0:7000->8000/tcp containername
Run Code Online (Sandbox Code Playgroud)
网络细节:
"NetworkSettings": {
"Bridge": "",
"SandboxID": "fe357c54c816fff0f9d642037dc9a173be7f7e42a80776d006572f6a1395969e",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"8000/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "7000"
}
]
}
Run Code Online (Sandbox Code Playgroud)
如果我在mymachine(hostmachine)访问docker ipaddr(172.11.0.10)或hostname(www.myhost.net)它工作
但是,如果我使用端口访问不起作用:hostmachine ip:192.168.1.1
go to the browser 192.168.1.1:7000 hostmachine and locally connected anoter machine also.
Run Code Online (Sandbox Code Playgroud)
但我的7000端口是在hostmachine听:
# ps aux | grep 7000
root 10437 0.0 0.2 194792 24572 pts/0 Sl+ 12:33 0:00 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 7000 -container-ip 172.11.0.10 -container-port 8000
root 10941 0.0 0.0 118492 2324 pts/3 R+ 12:44 0:00 grep --color=auto 7000
Run Code Online (Sandbox Code Playgroud)
更新1:
$ docker version
Client:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 21:39:21 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 21:39:21 2016
OS/Arch: linux/amd64
Run Code Online (Sandbox Code Playgroud)
建议我为什么无法访问我的Container到另一台机器.如何解决这个问题
Elt*_*man 15
端口7000的主机上是重定向到端口8000的容器,但任何事情听在容器中的端口?
您的docker run命令有点奇怪:-it用于以连接的终端交互运行容器; -d是为了在后台运行超脱; bash最后会覆盖图像配置为启动命令的任何内容,这就是为什么我认为没有什么可以监听端口8000.
尝试运行最简单的NGINX容器:
docker run -d -p 8081:80 nginx:alpine
Run Code Online (Sandbox Code Playgroud)
然后验证您是否可以访问主页:
curl http://localhost:8081
Run Code Online (Sandbox Code Playgroud)
如果这有效,那么我会看看你是如何运行图像的.
Den*_*din 10
我找到了这篇文章,但遇到了另一个问题,并且我确定以下建议可以帮助某人:
将您的应用程序绑定到Docker内部的0.0.0.0而不是127.0.0.1地址,以使Docker到达容器内的应用程序。
| 归档时间: |
|
| 查看次数: |
26962 次 |
| 最近记录: |