码头端口转发不起作用
问题描述:
我已经设置了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
创建后的容器详细说明:
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
网络的详细信息:
"NetworkSettings": {
"Bridge": "",
"SandboxID": "fe357c54c816fff0f9d642037dc9a173be7f7e42a80776d006572f6a1395969e",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"8000/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "7000"
}
]
}
如果我访问搬运工IPADDR(172.11.0.10)或主机名(www.myhost.net)在mymachine(主机)中工作
但是,如果我有端口访问不起作用:hostmachine IP:192.168.1.1
go to the browser 192.168.1.1:7000 hostmachine and locally connected anoter machine also.
但我的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
更新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
建议我为什么不能访问m y容器到另一台机器。如何解决这个问题
答
主机上的端口7000
重定向到容器中的端口8000
,但是是否有任何内容在容器中的该端口上侦听?
docker run
您的docker run
命令有点奇怪:-it
是用于交互式运行一个容器与一个附加的终端; -d
用于在后台运行分离; bash
在最后会覆盖图像配置为启动命令的任何内容,这就是为什么我认为端口8000
上没有任何监听。
尝试用这种运行简单的NGINX容器:
docker run -d -p 8081:80 nginx:alpine
然后确认就可以进入网页:
curl http://localhost:8081
如果的工作,那么我看你是怎么样运行你的形象。
答
部分答案:
现在我部分地解决了这个问题,尽管我在创建一个容器,并改变我的端口3000(-p 3000:80)无庆典尝试它为我工作。
命令之前:
docker run -it -d --name containerName -h www.myhost.net -v /var/www/html -p 3000:80 --net mynetwork --ip 172.11.0.10 --privileged myimagename bash
命令后:
docker run -it -d --name containerName -h www.myhost.net -v /var/www/html -p 3000:80 --net mynetwork --ip 172.11.0.10 --privileged myimagename
然后,
与斌/庆典执行容器
docker exec -it containerName bin/bash
现在,在本地工作连接另一台机器。
hostmachineip:3000
I don't know docker have any port restrictions.But This solution works for me.
答
当我遇到了这个问题(与泊坞窗,撰写管理组泊坞窗实例),我发现,删除该泊坞窗,撰写固定的问题网络:您正在使用泊坞窗工具箱
docker-compose stop
# find the network related to my docker-compose setup
docker network ls
docker network rm NETWORKNAME
# let docker-compose recreate the network:
docker-compose up -d
或本地码头? –
@ Shiraaz.M我使用本地码头,我使用命令行安装(fed23)dnf安装码头工人 –