在这里完成 docker 新手。
我正在运行 Docker for Windows,使用 WSL2 后端运行 Linux 容器。在 docker run 命令中,我使用 -p
公开端口,但 docker 容器只能在本地主机上访问。
运行 docker inspect <container ID>
得到以下输出
> C:\WINDOWS\system32>docker inspect interesting_lederberg [
> {
> "Id": "b0d157cce44eeed25676ce9f65f7e75bd8a8edf90ae939e3cee62138869482db",
> "Created": "2021-04-15T19:36:46.3761364Z",
> "Path": "/sbin/tini",
> "Args": [
> "--",
> "yarn",
> "start"
> ],
> "State": {
> "Status": "running",
> "Running": true,
> "Paused": false,
> "Restarting": false,
> "OOMKilled": false,
> "Dead": false,
> "Pid": 1090,
> "ExitCode": 0,
> "Error": "",
> "StartedAt": "2021-04-15T20:45:22.1484197Z",
> "FinishedAt": "2021-04-15T20:43:53.3264003Z"
> },
> "Image": "sha256:1f43ecb0bad02e402df1fc217bb1cbf784a61a5d0e3cc4cd812886d9973bd4fa",
> "ResolvConfPath": "/var/lib/docker/containers/b0d157cce44eeed25676ce9f65f7e75bd8a8edf90ae939e3cee62138869482db/resolv.conf",
> "HostnamePath": "/var/lib/docker/containers/b0d157cce44eeed25676ce9f65f7e75bd8a8edf90ae939e3cee62138869482db/hostname",
> "HostsPath": "/var/lib/docker/containers/b0d157cce44eeed25676ce9f65f7e75bd8a8edf90ae939e3cee62138869482db/hosts",
> "LogPath": "/var/lib/docker/containers/b0d157cce44eeed25676ce9f65f7e75bd8a8edf90ae939e3cee62138869482db/b0d157cce44eeed25676ce9f65f7e75bd8a8edf90ae939e3cee62138869482db-json.log",
> "Name": "/interesting_lederberg",
> "RestartCount": 0,
> "Driver": "overlay2",
> "Platform": "linux",
> "MountLabel": "",
> "ProcessLabel": "",
> "AppArmorProfile": "",
> "ExecIDs": [
> "87eca9033ea20f614ca3be74918a024cb3078707d4235347e7fad52b88a5fc95",
> "c0c84cf5231f14779b82a4188cf451ff44a879cb7b6f11529367462c99395c50"
> ],
> "HostConfig": {
> "Binds": [
> "/Users/Adam/.config/Overseerr/config:/app/config/"
> ],
> "ContainerIDFile": "",
> "LogConfig": {
> "Type": "json-file",
> "Config": {}
> },
> "NetworkMode": "default",
> "PortBindings": {
> "5055/tcp": [
> {
> "HostIp": "",
> "HostPort": "5055"
> }
> ]
> },
> "RestartPolicy": {
> "Name": "unless-stopped",
> "MaximumRetryCount": 0
> },
> "AutoRemove": false,
> "VolumeDriver": "",
> "VolumesFrom": null,
> "CapAdd": null,
> "CapDrop": null,
> "CgroupnsMode": "host",
> "Dns": [],
> "DnsOptions": [],
> "DnsSearch": [],
> "ExtraHosts": null,
> "GroupAdd": null,
> "IpcMode": "private",
> "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": [],
> "BlkioDeviceReadBps": null,
> "BlkioDeviceWriteBps": null,
> "BlkioDeviceReadIOps": null,
> "BlkioDeviceWriteIOps": null,
> "CpuPeriod": 0,
> "CpuQuota": 0,
> "CpuRealtimePeriod": 0,
> "CpuRealtimeRuntime": 0,
> "CpusetCpus": "",
> "CpusetMems": "",
> "Devices": [],
> "DeviceCgroupRules": null,
> "DeviceRequests": null,
> "KernelMemory": 0,
> "KernelMemoryTCP": 0,
> "MemoryReservation": 0,
> "MemorySwap": 0,
> "MemorySwappiness": null,
> "OomKillDisable": false,
> "PidsLimit": null,
> "Ulimits": null,
> "CpuCount": 0,
> "CpuPercent": 0,
> "IOMaximumIOps": 0,
> "IOMaximumBandwidth": 0,
> "MaskedPaths": [
> "/proc/asound",
> "/proc/acpi",
> "/proc/kcore",
> "/proc/keys",
> "/proc/latency_stats",
> "/proc/timer_list",
> "/proc/timer_stats",
> "/proc/sched_debug",
> "/proc/scsi",
> "/sys/firmware"
> ],
> "ReadonlyPaths": [
> "/proc/bus",
> "/proc/fs",
> "/proc/irq",
> "/proc/sys",
> "/proc/sysrq-trigger"
> ]
> },
> "GraphDriver": {
> "Data": {
> "LowerDir": "/var/lib/docker/overlay2/824a04914d3267dc4ed6d71a7f8a44511371c43818d9e89f84573bde1fa66de9-init/diff:/var/lib/docker/overlay2/dbb98291aa04ded3688d75e1b5957049f8ebc08676f1da6892e9e61f62b0a724/diff:/var/lib/docker/overlay2/e0b871640273eba9a621d6dbbffcf31fb30ac4607966c47ebb959e81b364c93a/diff:/var/lib/docker/overlay2/61be26b4852e8d864f8fffa1bd56f9caf48eb4e37714f7ee1ad201cf3086d825/diff:/var/lib/docker/overlay2/5d98c35bb30b5e4a3d6d3c77f121fb14379a664682bc1ef1d748e983f8152399/diff:/var/lib/docker/overlay2/64a3242b51efa6580a3f2228a017856b4721b7c76b2e3de823137f9997047cae/diff:/var/lib/docker/overlay2/2fee6e35a016411eb59ec15119695d80e54d1df0586cb968e9e449f56c8d388f/diff",
> "MergedDir": "/var/lib/docker/overlay2/824a04914d3267dc4ed6d71a7f8a44511371c43818d9e89f84573bde1fa66de9/merged",
> "UpperDir": "/var/lib/docker/overlay2/824a04914d3267dc4ed6d71a7f8a44511371c43818d9e89f84573bde1fa66de9/diff",
> "WorkDir": "/var/lib/docker/overlay2/824a04914d3267dc4ed6d71a7f8a44511371c43818d9e89f84573bde1fa66de9/work"
> },
> "Name": "overlay2"
> },
> "Mounts": [
> {
> "Type": "bind",
> "Source": "/Users/Adam/.config/Overseerr/config",
> "Destination": "/app/config",
> "Mode": "",
> "RW": true,
> "Propagation": "rprivate"
> }
> ],
> "Config": {
> "Hostname": "b0d157cce44e",
> "Domainname": "",
> "User": "",
> "AttachStdin": false,
> "AttachStdout": false,
> "AttachStderr": false,
> "ExposedPorts": {
> "5055/tcp": {}
> },
> "Tty": false,
> "OpenStdin": false,
> "StdinOnce": false,
> "Env": [
> "log_level=info",
> "TZ=Americas/Chicago",
> "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
> "NODE_VERSION=14.16.0",
> "YARN_VERSION=1.22.5"
> ],
> "Cmd": [
> "yarn",
> "start"
> ],
> "Image": "sctx/overseerr",
> "Volumes": null,
> "WorkingDir": "/app",
> "Entrypoint": [
> "/sbin/tini",
> "--"
> ],
> "OnBuild": null,
> "Labels": {}
> },
> "NetworkSettings": {
> "Bridge": "",
> "SandboxID": "17361bc4be45df07ee279b2b1987ca7e307e144c81c12da15c8daa692893f74b",
> "HairpinMode": false,
> "LinkLocalIPv6Address": "",
> "LinkLocalIPv6PrefixLen": 0,
> "Ports": {
> "5055/tcp": [
> {
> "HostIp": "0.0.0.0",
> "HostPort": "5055"
> }
> ]
> },
> "SandboxKey": "/var/run/docker/netns/17361bc4be45",
> "SecondaryIPAddresses": null,
> "SecondaryIPv6Addresses": null,
> "EndpointID": "029f59084a406f3a8845aefb089dafa04fdedb45b94779434f690beef694f897",
> "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": "d91c02041043e7b1f8facfcd1957e23dc133c22587442a20d78d0db65cb6ae11",
> "EndpointID": "029f59084a406f3a8845aefb089dafa04fdedb45b94779434f690beef694f897",
> "Gateway": "172.17.0.1",
> "IPAddress": "172.17.0.2",
> "IPPrefixLen": 16,
> "IPv6Gateway": "",
> "GlobalIPv6Address": "",
> "GlobalIPv6PrefixLen": 0,
> "MacAddress": "02:42:ac:11:00:02",
> "DriverOpts": null
> }
> }
> }
> } ]
据我所知,我处于桥接模式,我的容器 IP 是 172.0.2,网关是 172.0.0.1,但是如果我进入 Docker for Windows 程序并为我的容器打开一个 CLI 终端,{{1 }} 我得到 192.168.65.2 作为 IP 地址。另外作为参考,我在 Windows 主机上的本地 IP 是 192.168.0.18。
我发现一些信息表明我可能需要添加路由,但我对不同的 IP 地址以及我将在 run ping host.docker.internal
命令中使用的 IP 地址感到困惑,老实说我不确定我什至需要编辑我的路由表,因为不应该公开 route add
命令上的端口,允许使用 Windows 主机 IP 和端口 (192.168.0.18:5055) 从我的家庭网络上的不同设备进行访问?< /p>
感谢任何帮助和指导。