我正在使用docker工具箱来设置:
问题是我无法访问容器中的web服务。
下面是我使用的一些命令:
# 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>现在,我尝试使用以下地址访问,但都未能加载该网页:
下面是我使用的一些命令及其结果:
$ 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).
我是新手,我应该做些什么来访问容器中的网页?你能帮我诊断一下我的问题吗?
发布于 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。
发布于 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服务器。
希望这能有所帮助。
斯雷尼瓦斯
https://stackoverflow.com/questions/44218615
复制相似问题