首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker机器(virtualbox vm)向主机输出容器端口失败

问docker机器(virtualbox vm)向主机输出容器端口失败
EN

Stack Overflow用户
提问于 2017-05-27 15:28:03
回答 2查看 912关注 0票数 0

我正在使用docker工具箱来设置:

  1. Windows 10中的virtualbox默认vm
  2. 运行在virtualbox vm中的容器

问题是我无法访问容器中的web服务。

下面是我使用的一些命令:

代码语言:javascript
复制
# start up the web service
docker run -p 8000:8000 -p 9000:9000 -t -i xxx/myweb /bin/bash -l -c '/root/myweb/demos/web/start-servers.sh'

# terminal print after above cmd
Starting the HTTP TLS server on port 8000
and the Secure WebSocket server on port 9000.

Access the demo through the HTTP server in your browser.
If you're running on the same computer outside of Docker, use https://localhost:8000
If you're running on the same computer with Docker, find the IP
address of the Docker container and use https://<docker-ip>:8000.
If you're running on a remote computer, find the IP address
and use https://<remote-ip>:8000.

WARNING: Chromium will warn on self-signed certificates. Please accept the certificate
and reload the app.

WebSocket Server: Logging to '/tmp/openface.websocket.log'

2017-05-27 15:10:13+0000 [-] Log opened.
2017-05-27 15:10:13+0000 [-] WebSocketServerFactory (TLS) starting on 9000
2017-05-27 15:10:13+0000 [-] Starting factory <autobahn.twisted.websocket.WebSocketServerFactory object at 0x7f00ef9f5c90>

现在,我尝试使用以下地址访问,但都未能加载该网页:

  1. 本地主机:8000
  2. 192.168.99.100:8000 ( virtualbox vm的ip)
  3. 172.17.0.2:8000 (集装箱的知识产权)

下面是我使用的一些命令及其结果:

代码语言:javascript
复制
$ docker-machine config
--tlsverify
--tlscacert="C:\\Users\\AIT\\.docker\\machine\\machines\\default\\ca.pem"
--tlscert="C:\\Users\\AIT\\.docker\\machine\\machines\\default\\cert.pem"
--tlskey="C:\\Users\\AIT\\.docker\\machine\\machines\\default\\key.pem"
-H=tcp://192.168.99.100:2376

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                          NAMES
5896815b991d        xxx/myweb  "/bin/bash -l -c /..."   12 minutes ago      Up 12 minutes       192.168.99.100:8000->8000/tcp, 192.168.99.100:9000->9000/tcp   thirsty_wiles

$ docker inspect thirsty_wiles
[
    {
        "Id": "5896815b991d394753b5eabdd4fe7967e2e4bd65791ffe7fa1d3e82486c9f050",
        "Created": "2017-05-27T15:10:12.172475859Z",
        "Path": "/bin/bash",
        "Args": [
            "-l",
            "-c",
            "/root/myweb/demos/web/start-servers.sh"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,                "Pid": 2753,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2017-05-27T15:10:12.294120929Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:3c9f00308ef150eef9d50576245df69234437a4360684f9b262a284f50dc15d7",
        "ResolvConfPath": "/mnt/sda1/var/lib/docker/containers/5896815b991d394753b5eabdd4fe7967e2e4bd65791ffe7fa1d3e82486c9f050/resolv.conf",
        "HostnamePath": "/mnt/sda1/var/lib/docker/containers/5896815b991d394753b5eabdd4fe7967e2e4bd65791ffe7fa1d3e82486c9f050/hostname",
        "HostsPath": "/mnt/sda1/var/lib/docker/containers/5896815b991d394753b5eabdd4fe7967e2e4bd65791ffe7fa1d3e82486c9f050/hosts",
        "LogPath": "/mnt/sda1/var/lib/docker/containers/5896815b991d394753b5eabdd4fe7967e2e4bd65791ffe7fa1d3e82486c9f050/5896815b991d394753b5eabdd4fe7967e2e4bd65791ffe7fa1d3e82486c9f050-json.log",
        "Name": "/thirsty_wiles",
        "RestartCount": 0,
        "Driver": "aufs",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {
                "8000/tcp": [
                    {
                        "HostIp": "192.168.99.100",
                        "HostPort": "8000"
                    }
                ],
                "9000/tcp": [
                    {
                        "HostIp": "192.168.99.100",
                        "HostPort": "9000"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                30,
                120
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DiskQuota": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": -1,
            "OomKillDisable": false,
            "PidsLimit": 0,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0
        },
        "GraphDriver": {
            "Data": null,
            "Name": "aufs"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "5896815b991d",
            "Domainname": "",
            "User": "",
            "AttachStdin": true,
            "AttachStdout": true,
            "AttachStderr": true,
            "ExposedPorts": {
                "8000/tcp": {},
                "9000/tcp": {}
            },
            "Tty": true,
            "OpenStdin": true,
            "StdinOnce": true,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash",
                "-l",
                "-c",
                "/root/myweb/demos/web/start-servers.sh"
            ],
            "Image": "xxx/myweb",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "97f5c2894d9a6977723e3a54db77f7ff81150d8447722147a0d561a193d4caeb",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "8000/tcp": [
                    {
                        "HostIp": "192.168.99.100",
                        "HostPort": "8000"
                    }
                ],
                "9000/tcp": [
                    {
                        "HostIp": "192.168.99.100",
                        "HostPort": "9000"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/97f5c2894d9a",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "2f62e7e113d8ec9f0c6760f618f53f43821c469b3c461b7447011737ee768c65",
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,

            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "188e40f0cb38ff9be5f053cffdf5e97c22bfed8f7ee93c685178d0c9748a032c",
                    "EndpointID": "2f62e7e113d8ec9f0c6760f618f53f43821c469b3c461b7447011737ee768c65",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02"
                }
            }
        }
    }
]

docker工具箱还为“默认”vm的网络设置提供了默认配置:

1: NAT

2:只有主机的适配器(Virtualbox主机-只有以太网适配器#2).

我是新手,我应该做些什么来访问容器中的网页?你能帮我诊断一下我的问题吗?

EN

回答 2

Stack Overflow用户

发布于 2017-05-27 18:10:42

如果VM (Docker )正在运行Linux,则尝试iptables -F & iptables -t nat -F,然后从仅主机或从Windows模式网络重试,对于Ex,如果仅主机接口IP为192.168.56.101 ( VM ),则从Windows物理主机尝试IP:8080。

票数 0
EN

Stack Overflow用户

发布于 2017-05-28 06:15:03

我假设您是在询问如何从运行Virtualbox的主机访问web服务。

正如您已经知道的,您可以使用localhost:或:从boot2docker Linux机器访问webservice。

要从主机访问web服务,可以使用Virtualbox提供的端口转发功能。您可以转到boot2docker机器NAT适配器下的设置->Network->端口转发,并在boot2docker主机端口和windows机器端口之间添加端口转发。对于您的例子,您可以说(hostip=127.0.0.1、主机port=8000、来宾port=8000)。之后,您可以使用localhost:8000或127.0.0.1.8000从主机访问can服务器。

希望这能有所帮助。

斯雷尼瓦斯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44218615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档