Lui*_*uel 3 docker docker-for-windows docker-network
我有一个带有 Java spring boot 应用程序的 docker 映像,该应用程序在端口 8080 的 docker 容器中启动和运行没有问题,正如您在部分日志中看到的那样:
\n\n 2020-02-24 02:09:07.906 INFO : Tomcat started on port(s): 8080 (http) with context path \'/web-app\'\n 2020-02-24 02:09:07.909 INFO : Started web-app in 7.034 seconds (JVM running for 7.601)\nRun Code Online (Sandbox Code Playgroud)\n\n如果我在容器内运行curl命令(使用终端),我会得到正确的响应,表明服务器正在运行并且正在运行。
\n\n/# curl http://localhost:8080/web-app/cars/1\n{"id":"1"}\nRun Code Online (Sandbox Code Playgroud)\n\n现在,当我尝试访问主机上的应用程序时,问题就来了,我正在使用 Windows 10 顺便说一句(在网络浏览器中http://localhost:8080/web-app/cars/1),这里是如何我运行泊坞窗图像。
\n\ndocker run web-app -p 8080:8080\nRun Code Online (Sandbox Code Playgroud)\n\n但是,我不认为这是 Windows 问题,因为我可以运行一个简单的 nginx 服务器,并且可以毫无问题地在主机上访问它。
\n\ndocker run -d -p 80:80 nginx\nRun Code Online (Sandbox Code Playgroud)\n\n我注意到的一件事是当看到正在运行的容器时,端口列
\n\nC:\\Users\\luis>docker ps\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\n71c99d5a2c66 nginx "nginx -g \'daemon of\xe2\x80\xa6" About a minute ago Up About a minute 0.0.0.0:80->80/tcp loving_hypatia\n86080fcce5d6 web-app "java -jar /usr/app/\xe2\x80\xa6" 13 minutes ago Up 13 minutes 8080/tcp vigorous_swanso\nRun Code Online (Sandbox Code Playgroud)\n\n正如您所看到的,工作容器的 PORT 列看起来像0.0.0.0:80->80/tcp,但对于非工作容器,该列看起来像8080/tcp
\n\n这是 Dockerfile,以防它有帮助(注意我正在公开 8080 端口):
\n\n# Building the APP from Maven image\nFROM maven:3.6.0-jdk-11-slim AS build\nCOPY src /home/app/src\nCOPY pom.xml /home/app\nRUN mvn -f /home/app/pom.xml clean package\n\n# From previous stage run the WAR created\nFROM openjdk:11-jre-slim\nCOPY --from=build /home/app/target/web-app-0.0.1-SNAPSHOT.war /usr/local/lib/web-app.jar\nEXPOSE 8080\nENTRYPOINT ["java","-jar","/usr/local/lib/web-app.jar"]\nRun Code Online (Sandbox Code Playgroud)\n\n我在这里错过了什么吗?
\n\n编辑: \n这是 docker 检查:
\n\nC:\\Users\\luis>docker inspect a900f22848b2\n[\n {\n "Id": "a900f22848b21193c966bdbf2804ac7f736c4802f969624392724717983269dc",\n "Created": "2020-02-24T02:51:55.407400538Z",\n "Path": "java",\n "Args": [\n "-jar",\n "/usr/app/web-app.jar",\n "-p",\n "8080:8080"\n ],\n "State": {\n "Status": "running",\n "Running": true,\n "Paused": false,\n "Restarting": false,\n "OOMKilled": false,\n "Dead": false,\n "Pid": 4315,\n "ExitCode": 0,\n "Error": "",\n "StartedAt": "2020-02-24T02:51:55.691065531Z",\n "FinishedAt": "0001-01-01T00:00:00Z"\n },\n "Image": "sha256:d5c9d14f8d550fab2028370bf8e5785f26f6c5bf423b77480076f191e3f551b2",\n "ResolvConfPath": "/var/lib/docker/containers/a900f22848b21193c966bdbf2804ac7f736c4802f969624392724717983269dc/resolv.conf",\n "HostnamePath": "/var/lib/docker/containers/a900f22848b21193c966bdbf2804ac7f736c4802f969624392724717983269dc/hostname",\n "HostsPath": "/var/lib/docker/containers/a900f22848b21193c966bdbf2804ac7f736c4802f969624392724717983269dc/hosts",\n "LogPath": "/var/lib/docker/containers/a900f22848b21193c966bdbf2804ac7f736c4802f969624392724717983269dc/a900f22848b21193c966bdbf2804ac7f736c4802f969624392724717983269dc-json.log",\n "Name": "/affectionate_ardinghelli",\n "RestartCount": 0,\n "Driver": "overlay2",\n "Platform": "linux",\n "MountLabel": "",\n "ProcessLabel": "",\n "AppArmorProfile": "",\n "ExecIDs": null,\n "HostConfig": {\n "Binds": null,\n "ContainerIDFile": "",\n "LogConfig": {\n "Type": "json-file",\n "Config": {}\n },\n "NetworkMode": "default",\n "PortBindings": {},\n "RestartPolicy": {\n "Name": "no",\n "MaximumRetryCount": 0\n },\n "AutoRemove": false,\n "VolumeDriver": "",\n "VolumesFrom": null,\n "CapAdd": null,\n "CapDrop": null,\n "Capabilities": null,\n "Dns": [],\n "DnsOptions": [],\n "DnsSearch": [],\n "ExtraHosts": null,\n "GroupAdd": null,\n "IpcMode": "private",\n "Cgroup": "",\n "Links": null,\n "OomScoreAdj": 0,\n "PidMode": "",\n "Privileged": false,\n "PublishAllPorts": false,\n "ReadonlyRootfs": false,\n "SecurityOpt": null,\n "UTSMode": "",\n "UsernsMode": "",\n "ShmSize": 67108864,\n "Runtime": "runc",\n "ConsoleSize": [\n 50,\n 120\n ],\n "Isolation": "",\n "CpuShares": 0,\n "Memory": 0,\n "NanoCpus": 0,\n "CgroupParent": "",\n "BlkioWeight": 0,\n "BlkioWeightDevice": [],\n "BlkioDeviceReadBps": null,\n "BlkioDeviceWriteBps": null,\n "BlkioDeviceReadIOps": null,\n "BlkioDeviceWriteIOps": null,\n "CpuPeriod": 0,\n "CpuQuota": 0,\n "CpuRealtimePeriod": 0,\n "CpuRealtimeRuntime": 0,\n "CpusetCpus": "",\n "CpusetMems": "",\n "Devices": [],\n "DeviceCgroupRules": null,\n "DeviceRequests": null,\n "KernelMemory": 0,\n "KernelMemoryTCP": 0,\n "MemoryReservation": 0,\n "MemorySwap": 0,\n "MemorySwappiness": null,\n "OomKillDisable": false,\n "PidsLimit": null,\n "Ulimits": null,\n "CpuCount": 0,\n "CpuPercent": 0,\n "IOMaximumIOps": 0,\n "IOMaximumBandwidth": 0,\n "MaskedPaths": [\n "/proc/asound",\n "/proc/acpi",\n "/proc/kcore",\n "/proc/keys",\n "/proc/latency_stats",\n "/proc/timer_list",\n "/proc/timer_stats",\n "/proc/sched_debug",\n "/proc/scsi",\n "/sys/firmware"\n ],\n "ReadonlyPaths": [\n "/proc/bus",\n "/proc/fs",\n "/proc/irq",\n "/proc/sys",\n "/proc/sysrq-trigger"\n ]\n },\n "GraphDriver": {\n "Data": {\n "LowerDir": "/var/lib/docker/overlay2/6fb2eab78ca0d9b21e598d5d81cdb26e5039413c250801a8626cffd4a19eb17f-init/diff:/var/lib/docker/overlay2/25b7580ce520a6935c10b4acbedde883c0d0ebc676fb56525790883619ca4222/diff:/var/lib/docker/overlay2/94a2a6c5df74fb9ef6dc3dfb31cc75ed2c7f4d56f2f0e6b8bbad15d5032ad1b4/diff:/var/lib/docker/overlay2/6d09c5ef421eb410fdaf02da239d85b04154bf7b9b6a99c36addd8e2ff0b1479/diff:/var/lib/docker/overlay2/b45789110f7591e23d54469c6eb1479f3b2719b57cb31b344d09e3e057d372b0/diff:/var/lib/docker/overlay2/24daf4027a52517c1e6f166cbd61f19c713dcee101c95ec6bd0e0eb0b3590507/diff:/var/lib/docker/overlay2/340750e0a675235dd75be936c08b3768c5cb558ca4210ec8668949633e010040/diff:/var/lib/docker/overlay2/bf04da8ac060038ee92ea1d52cd46a261cae8a3a0b6428424a1d96de808f245a/diff:/var/lib/docker/overlay2/58b7232b6311cd78cd55f8d6153a9178cd93e3126997c4aa6aa0536206c58a31/diff",\n "MergedDir": "/var/lib/docker/overlay2/6fb2eab78ca0d9b21e598d5d81cdb26e5039413c250801a8626cffd4a19eb17f/merged",\n "UpperDir": "/var/lib/docker/overlay2/6fb2eab78ca0d9b21e598d5d81cdb26e5039413c250801a8626cffd4a19eb17f/diff",\n "WorkDir": "/var/lib/docker/overlay2/6fb2eab78ca0d9b21e598d5d81cdb26e5039413c250801a8626cffd4a19eb17f/work"\n },\n "Name": "overlay2"\n },\n "Mounts": [],\n "Config": {\n "Hostname": "a900f22848b2",\n "Domainname": "",\n "User": "",\n "AttachStdin": false,\n "AttachStdout": true,\n "AttachStderr": true,\n "ExposedPorts": {\n "8080/tcp": {}\n },\n "Tty": false,\n "OpenStdin": false,\n "StdinOnce": false,\n "Env": [\n "PATH=/usr/local/openjdk-11/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",\n "LANG=C.UTF-8",\n "JAVA_HOME=/usr/local/openjdk-11",\n "JAVA_VERSION=11.0.6",\n "JAVA_BASE_URL=https://github.com/AdoptOpenJDK/openjdk11-upstream-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_",\n "JAVA_URL_VERSION=11.0.6_10"\n ],\n "Cmd": [\n "-p",\n "8080:8080"\n ],\n "Image": "web-app",\n "Volumes": null,\n "WorkingDir": "",\n "Entrypoint": [\n "java",\n "-jar",\n "/usr/app/web-app.jar"\n ],\n "OnBuild": null,\n "Labels": {}\n },\n "NetworkSettings": {\n "Bridge": "",\n "SandboxID": "042d90c5fd29fcb620f3e021c7c4459a34caed47e50b3f183830543dd103826f",\n "HairpinMode": false,\n "LinkLocalIPv6Address": "",\n "LinkLocalIPv6PrefixLen": 0,\n "Ports": {\n "8080/tcp": null\n },\n "SandboxKey": "/var/run/docker/netns/042d90c5fd29",\n "SecondaryIPAddresses": null,\n "SecondaryIPv6Addresses": null,\n "EndpointID": "abcdee85d18be541a47c8c4a2f3aa8d4eca0b60bc11a635566b433ea0c59149b",\n "Gateway": "172.17.0.1",\n "GlobalIPv6Address": "",\n "GlobalIPv6PrefixLen": 0,\n "IPAddress": "172.17.0.4",\n "IPPrefixLen": 16,\n "IPv6Gateway": "",\n "MacAddress": "02:42:ac:11:00:04",\n "Networks": {\n "bridge": {\n "IPAMConfig": null,\n "Links": null,\n "Aliases": null,\n "NetworkID": "82786fd4bcc39ea0c53918c2a61b5299dd51fe2239b0a02122bd8fda14a1ac2d",\n "EndpointID": "abcdee85d18be541a47c8c4a2f3aa8d4eca0b60bc11a635566b433ea0c59149b",\n "Gateway": "172.17.0.1",\n "IPAddress": "172.17.0.4",\n "IPPrefixLen": 16,\n "IPv6Gateway": "",\n "GlobalIPv6Address": "",\n "GlobalIPv6PrefixLen": 0,\n "MacAddress": "02:42:ac:11:00:04",\n "DriverOpts": null\n }\n }\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n\n]
\n端口映射不起作用只是因为我以错误的顺序设置了它。
正确的做法:
docker run -p 8080:8080 web-app
Run Code Online (Sandbox Code Playgroud)
我运行容器和端口映射的方式不起作用。
docker run web-app -p 8080:8080
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11126 次 |
| 最近记录: |