Score:0

ฉันอาจทำแผนที่พอร์ตคอนเทนเนอร์เสียหาย

ธง cn
etd

การแมปพอร์ตไม่ทำงาน ฉันไม่รู้ว่ามันเป็นสิ่งที่ฉันทำหรืออะไร

ติดตั้ง: Arch Linux พร้อมเคอร์เนล 5.16, Docker 20.10.12, โดยใช้ nginx-พร็อกซี กับคู่หูของ acme เพื่อรับใบรับรองสำหรับแอพต่างๆ ในคอนเทนเนอร์อื่น ทุกอย่างทำงานได้ดีอย่างแน่นอน

ทันใดนั้นฉันก็เริ่มได้รับ 502 ข้อผิดพลาดจากพร็อกซี nginx ไม่สามารถเข้าถึงแอปคอนเทนเนอร์บนพอร์ตที่ฉันระบุไว้ หลังจากตรวจสอบ ฉันพบว่าคอนเทนเนอร์อื่นๆ กำลังเปิดพอร์ตอะไรก็ได้ที่พวกเขาต้องการบนโฮสต์ โฮสต์คิดว่าพอร์ตที่ระบุเดิมเปิดอยู่ แต่ก็ไม่เป็นเช่นนั้น ตัวอย่างเช่นหนึ่งในแอพของฉันเป็นเพียง nginx ให้บริการเว็บไซต์อีกครั้ง ฉันได้บอก Docker ให้แมปพอร์ตแล้ว 8001 บนโฮสต์เพื่อ 80 ในคอนเทนเนอร์ แล้วเมื่อฉันใช้ ลซ เพื่อแสดงพอร์ตที่เปิดอยู่บนโฮสต์ ฉันเห็น 8001 ใช้งานอยู่ แต่ฉันไม่สามารถเข้าถึงสิ่งใดบนนั้นได้ ฉันสามารถเข้าถึงได้บนพอร์ต 80 (แม้ว่า 80 จะถูกใช้งานโดยพร็อกซี nginx ก็ตาม) แผนที่ ยืนยันว่าเป็นเพียงพอร์ต 80 ที่เปิดจริงบนคอนเทนเนอร์

สิ่งหนึ่งที่ฉันเพิ่งทำคือเปลี่ยนนโยบายเริ่มต้นในห่วงโซ่ FORWARD ใน iptables ฉันไม่เข้าใจว่าเหตุใดการเปลี่ยนค่าเริ่มต้นจึงสำคัญสำหรับแพ็กเก็ตที่ถูกกำหนดเส้นทางไว้ที่ใดที่หนึ่งแล้ว

กำหนดค่า:

การกำหนดค่าของคอนเทนเนอร์ nginx-proxy:

[
    {
        "รหัส": "e24130ccef2bce43a11ebe5686e9a0ca45a7b0b13e32c4649095d11fd0361123",
        "สร้างแล้ว": "2022-03-02T16:16:07.626095681Z",
        "เส้นทาง": "/app/docker-entrypoint.sh",
        "อาร์กส์": [
            "ก่อน",
            "เริ่ม",
            "-ร"
        ]
        "สถานะ": {
            "สถานะ": "กำลังทำงาน",
            "วิ่ง": จริง
            "หยุดชั่วคราว": เท็จ
            "รีสตาร์ท": เท็จ
            "OOMKilled": เท็จ
            "ตาย": เท็จ
            "ปิด": 2767,
            "รหัสทางออก": 0,
            "ข้อผิดพลาด": "",
            "เริ่มต้นเมื่อ": "2022-03-02T16:16:08.672491906Z",
            "เสร็จสิ้นที่": "0001-01-01T00:00:00Z"
        },
        "รูปภาพ": "sha256:82ea330a72d6f9d955287dc6e2c4c57a1466d480688574a4d0997c981bc495f3",
        "ResolvConfPath": "/var/lib/docker/containers/e24130ccef2bce43a11ebe5686e9a0ca45a7b0b13e32c4649095d11fd0361123/resolv.conf",
        "เส้นทางชื่อโฮสต์": "/var/lib/docker/containers/e24130ccef2bce43a11ebe5686e9a0ca45a7b0b13e32c4649095d11fd0361123/ชื่อโฮสต์",
        "HostsPath": "/var/lib/docker/containers/e24130ccef2bce43a11ebe5686e9a0ca45a7b0b13e32c4649095d11fd0361123/hosts",
        "LogPath": "/var/lib/docker/containers/e24130ccef2bce43a11ebe5686e9a0ca45a7b0b13e32c4649095d11fd0361123/e24130ccef2bce43a11ebe5686e9a0ca45a7b0b13e32c4649095"
        "ชื่อ": "/nginx-proxy",
        "เริ่มนับใหม่": 0,
        "ไดรเวอร์": "btrfs",
        "แพลตฟอร์ม": "ลินุกซ์",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "ผูก": [
                "/var/run/docker.sock:/tmp/docker.sock:ro"
            ]
            "ContainerIDFile": "",
            "LogConfig": {
                "ประเภท": "json-file",
                "กำหนดค่า": {}
            },
            "โหมดเครือข่าย": "ivonet",
            "การผูกพอร์ต": {
                "443/tcp": [
                    {
                        "โฮสต์ไอพี": "",
                        "โฮสต์พอร์ต": "443"
                    }
                ]
                "80/tcp": [
                    {
                        "โฮสต์ไอพี": "",
                        "โฮสต์พอร์ต": "80"
                    }
                ]
            },
            "RestartPolicy": {
                "ชื่อ": "เสมอ",
                "RetryCount สูงสุด": 0
            },
            "ลบอัตโนมัติ": เท็จ
            "ไดรฟ์เวอร์": "",
            "ปริมาณจาก": null,
            "CapAdd": null,
            "CapDrop": เป็นโมฆะ
            "CgroupnsMode": "ส่วนตัว",
            "Dns": null,
            "DnsOptions": null,
            "DnsSearch": null,
            "ExtraHosts": null,
            "GroupAdd": null,
            "IPCMode": "ส่วนตัว",
            "กลุ่ม": "",
            "ลิงค์": null,
            "OomScoreAdj": 0,
            "โหมดพิด": "",
            "สิทธิพิเศษ": เท็จ
            "PublishAllPorts": เท็จ
            "ReadonlyRootfs": เท็จ
            "SecurityOpt": null,
            "UTSMode": "",
            "โหมดผู้ใช้": "",
            "ShmSize": 67108864,
            "รันไทม์": "รันไทม์",
            "ขนาดคอนโซล": [
                0,
                0
            ]
            "การแยกตัว": "",
            "CpuShares": 0,
            "หน่วยความจำ": 0,
            "นาโนซีพียู": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "ระยะเวลาซีพียู": 0,
            "โควต้าซีพียู": 0,
            "CpuRealtimePeriod": 0,
            "ซีพียูเรียลไทม์รันไทม์": 0,
            "ซีพียูเซ็ตซีพียู": "",
            "CpusetMems": "",
            "อุปกรณ์": null,
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "หน่วยความจำเคอร์เนล": 0,
            "เคอร์เนลหน่วยความจำ TCP": 0,
            "การจองหน่วยความจำ": 0,
            "สลับหน่วยความจำ": 0,
            "MemorySwappiness": null,
            "OomKillDisable": null,
            "PidsLimit": null,
            "Ulimits": null,
            "จำนวนซีพียู": 0,
            "เปอร์เซ็นต์ซีพียู": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "เมาท์": [
                {
                    "ประเภท": "ระดับเสียง",
                    "แหล่งที่มา": "nginx-proxy_conf",
                    "เป้าหมาย": "/etc/nginx/conf.d",
                    "VolumeOptions": {}
                },
                {
                    "ประเภท": "ระดับเสียง",
                    "แหล่งที่มา": "nginx-proxy_vhost",
                    "เป้าหมาย": "/etc/nginx/vhost.d",
                    "VolumeOptions": {}
                },
                {
                    "ประเภท": "ระดับเสียง",
                    "แหล่งที่มา": "nginx-proxy_html",
                    "เป้าหมาย": "/usr/share/nginx/html",
                    "VolumeOptions": {}
                },
                {
                    "ประเภท": "ระดับเสียง",
                    "แหล่งที่มา": "nginx-proxy_certs",
                    "เป้าหมาย": "/etc/nginx/certs",
                    "อ่านอย่างเดียว": จริง
                    "VolumeOptions": {}
                }
            ]
            "เส้นทางที่สวมหน้ากาก": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/เฟิร์มแวร์"
            ]
            "เส้นทางแบบอ่านอย่างเดียว": [
                "/proc/บัส",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-ทริกเกอร์"
            ]
        },
        "โปรแกรมควบคุมกราฟ": {
            "ข้อมูล": null,
            "ชื่อ": "btrfs"
        },
        "เมาท์": [
            {
                "ประเภท": "ระดับเสียง",
                "ชื่อ": "nginx-proxy_html",
                "แหล่งที่มา": "/var/lib/docker/volumes/nginx-proxy_html/_data",
                "ปลายทาง": "/usr/share/nginx/html",
                "ไดรเวอร์": "ท้องถิ่น",
                "โหมด": "z",
                "RW": จริง
                "การขยายพันธุ์":""
            },
            {
                "ประเภท": "ระดับเสียง",
                "ชื่อ": "nginx-proxy_certs",
                "แหล่งที่มา": "/var/lib/docker/volumes/nginx-proxy_certs/_data",
                "ปลายทาง": "/etc/nginx/certs",
                "ไดรเวอร์": "ท้องถิ่น",
                "โหมด": "z",
                "RW": เท็จ
                "การขยายพันธุ์":""
            },
            {
                "ประเภท": "ผูก",
                "แหล่งที่มา": "/var/run/docker.sock",
                "ปลายทาง": "/tmp/docker.sock",
                "โหมด": "ro",
                "RW": เท็จ
                "การขยายพันธุ์": "rprivate"
            },
            {
                "ประเภท": "ระดับเสียง",
                "ชื่อ": "nginx-proxy_conf",
                "แหล่งที่มา": "/var/lib/docker/volumes/nginx-proxy_conf/_data",
                "ปลายทาง": "/etc/nginx/conf.d",
                "ไดรเวอร์": "ท้องถิ่น",
                "โหมด": "z",
                "RW": จริง
                "การขยายพันธุ์":""
            },
            {
                "ประเภท": "ระดับเสียง",
                "ชื่อ": "nginx-proxy_vhost",
                "แหล่งที่มา": "/var/lib/docker/volumes/nginx-proxy_vhost/_data",
                "ปลายทาง": "/etc/nginx/vhost.d",
                "ไดรเวอร์": "ท้องถิ่น",
                "โหมด": "z",
                "RW": จริง
                "การขยายพันธุ์":""
            }
        ]
        "กำหนดค่า": {
            "ชื่อโฮสต์": "nginx-proxy",
            "ชื่อโดเมน": "",
            "ผู้ใช้": "",
            "AttachStdin": เท็จ
            "AttachStdout": จริง
            "AttachStderr": จริง
            "พอร์ตที่เปิดเผย": {
                "443/tcp": {},
                "80/tcp": {}
            },
            "Tty": เท็จ
            "OpenStdin": เท็จ
            "StdinOnce": เท็จ
            "เอ็น": [
                "เส้นทาง=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.21.6",
                "NJS_VERSION=0.7.2",
                "PKG_RELEASE=1",
                "NGINX_PROXY_VERSION=0.10.1-29-gfb8ddfd",
                "DOCKER_GEN_VERSION=0.8.2",
                "DOCKER_HOST=unix://tmp/docker.sock"
            ]
            "คำสั่ง": [
                "ก่อน",
                "เริ่ม",
                "-ร"
            ]
            "รูปภาพ": "nginxproxy/nginx-proxy:alpine",
            "วอลุ่ม": {
                "/etc/nginx/certs": {},
                "/etc/nginx/conf.d": {},
                "/etc/nginx/vhost.d": {},
                "/tmp/docker.sock": {},
                "/usr/share/nginx/html": {}
            },
            "WorkingDir": "/แอป",
            "จุดเริ่มต้น": [
                "/app/docker-entrypoint.sh"
            ]
            "OnBuild": null,
            "ป้ายกำกับ": {
                "com.docker.compose.config-hash": "3324b86760e2e436e707f1310aef7724e088d661c1bbeaaf573104e2644a08b0",
                "com.docker.compose.container-number": "1",
                "com.docker.compose.depends_on": "",
                "com.docker.compose.image": "sha256:82ea330a72d6f9d955287dc6e2c4c57a1466d480688574a4d0997c981bc495f3",
                "com.docker.compose.oneoff": "เท็จ",
                "com.docker.compose.project": "nginx-proxy",
                "com.docker.compose.project.config_files": "/home/winfield/contain/nginx-proxy/docker-compose.yaml",
                "com.docker.compose.project.working_dir": "/home/winfield/contain/nginx-proxy",
                "com.docker.compose.service": "nginx-proxy",
                "com.docker.compose.version": "2.2.3",
                "ผู้ดูแล": "ผู้ดูแล NGINX Docker <[email protected]>",
                "org.opencontainers.image.authors": "Nicolas Duchon <[email protected]> (@buchdag), Jason Wilder",
                "org.opencontainers.image.created": "2022-02-28T00:02:10.384Z",
                "org.opencontainers.image.description": "พร็อกซี nginx อัตโนมัติสำหรับคอนเทนเนอร์ Docker โดยใช้ docker-gen",
                "org.opencontainers.image.licenses": "MIT",
                "org.opencontainers.image.revision": "fb8ddfd08c0f6cb53e583ea22ff8be06f69c50dc",
                "org.opencontainers.image.source": "https://github.com/nginx-proxy/nginx-proxy",
                "org.opencontainers.image.title": "nginx-proxy",
                "org.opencontainers.image.url": "https://github.com/nginx-proxy/nginx-proxy",
                "org.opencontainers.image.version": "0.10.1-29-gfb8ddfd"
            },
            "StopSignal": "ซิกควิท"
        },
        "การตั้งค่าเครือข่าย": {
            "สะพาน": "",
            "รหัสแซนด์บ็อกซ์": "cb385fa1d3dab87cccd2d89e70708e27e8bc1815867ae5fbc7e1c2f75000dc25",
            "HairpinMode": เท็จ
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "พอร์ต": {
                "443/tcp": [
                    {
                        "โฮสต์ไอพี": "0.0.0.0",
                        "โฮสต์พอร์ต": "443"
                    },
                    {
                        "โฮสต์ไอพี": "::",
                        "โฮสต์พอร์ต": "443"
                    }
                ]
                "80/tcp": [
                    {
                        "โฮสต์ไอพี": "0.0.0.0",
                        "โฮสต์พอร์ต": "80"
                    },
                    {
                        "โฮสต์ไอพี": "::",
                        "โฮสต์พอร์ต": "80"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/cb385fa1d3da",
            "ที่อยู่ IP รอง": null,
            "ที่อยู่ IPv6 รอง": null,
            "รหัสปลายทาง": "",
            "ประตู": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "ที่อยู่ IP": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "หมายเลขทางกายภาพ": "",
            "เครือข่าย": {
                "ไอโวเน็ต": {
                    "IPAMConfig": null,
                    "ลิงค์": null,
                    "นามแฝง": [
                        "nginx-proxy",
                        "nginx-proxy",
                        "e24130ccef2b"
                    ]
                    "NetworkID": "694e4c767b2eeca4c039e518db8294c2cc32a3be38f5dd0ad8779bce4099929c",
                    "EndpointID": "e653f85d0381f1c3bdaca9935eff3e4129d7941cf9c246d80e181e477c0bd79b",
                    "เกตเวย์": "172.18.0.1",
                    "ที่อยู่ IP": "172.18.0.3",
                    "IPPrefixLen": 24,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "ที่อยู่ Mac": "02:42:ac:12:00:03",
                    "DriverOpts": null
                }
            }
        }
    }
]

การกำหนดค่าของคอนเทนเนอร์ nginx พร็อกซี:

[
    {
        "รหัส": "e0b1be5c35ff60f337087f58819be190dcf495796114b6a2054dd78cf0e4679c",
        "สร้างแล้ว": "2022-03-02T16:16:23.658997558Z",
        "เส้นทาง": "/docker-entrypoint.sh",
        "อาร์กส์": [
            "นิ้งซ์",
            "-ก",
            "ภูตปิด"
        ]
        "สถานะ": {
            "สถานะ": "กำลังทำงาน",
            "วิ่ง": จริง
            "หยุดชั่วคราว": เท็จ
            "รีสตาร์ท": เท็จ
            "OOMKilled": เท็จ
            "ตาย": เท็จ
            "ปิด": 3633,
            "รหัสทางออก": 0,
            "ข้อผิดพลาด": "",
            "StartedAt": "2022-03-02T16:16:24.099412527Z",
            "เสร็จสิ้นที่": "0001-01-01T00:00:00Z"
        },
        "รูปภาพ": "sha256:bef258acf10dc257d641c47c3a600c92f87be4b4ce4a5e4752b3eade7533dcd9",
        "ResolvConfPath": "/var/lib/docker/containers/e0b1be5c35ff60f337087f58819be190dcf495796114b6a2054dd78cf0e4679c/resolv.conf",
        "เส้นทางชื่อโฮสต์": "/var/lib/docker/containers/e0b1be5c35ff60f337087f58819be190dcf495796114b6a2054dd78cf0e4679c/ชื่อโฮสต์",
        "HostsPath": "/var/lib/docker/containers/e0b1be5c35ff60f337087f58819be190dcf495796114b6a2054dd78cf0e4679c/hosts",
        "LogPath": "/var/lib/docker/containers/e0b1be5c35ff60f337087f58819be190dcf495796114b6a2054dd78cf0e4679c/e0b1be5c35ff60f337087f58819be190dcf495796154b6a20c.7dc6a20c",logPath6dc6a20c6a20c6a20c",logPath": "/var/lib/docker/containers/e0b1be5c35ff60f337087f58819be190dcf495796114b6a2054dd78cf0e4679c/e0b1be5c35ff60f337087f58819be190dcf495796154b6a20c.
        "ชื่อ": "/atsuo.tg",
        "เริ่มนับใหม่": 0,
        "ไดรเวอร์": "btrfs",
        "แพลตฟอร์ม": "ลินุกซ์",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "ผูก": [
                "/home/winfield/contain/atsuo.tg/site:/usr/share/nginx/html:rw"
            ]
            "ContainerIDFile": "",
            "LogConfig": {
                "ประเภท": "json-file",
                "กำหนดค่า": {}
            },
            "โหมดเครือข่าย": "ivonet",
            "การผูกพอร์ต": {
                "80/tcp": [
                    {
                        "โฮสต์ไอพี": "",
                        "โฮสต์พอร์ต": "8001"
                    }
                ]
            },
            "RestartPolicy": {
                "ชื่อ": "",
                "RetryCount สูงสุด": 0
            },
            "ลบอัตโนมัติ": เท็จ
            "ไดรฟ์เวอร์": "",
            "ปริมาณจาก": null,
            "CapAdd": null,
            "CapDrop": เป็นโมฆะ
            "CgroupnsMode": "ส่วนตัว",
            "Dns": null,
            "DnsOptions": null,
            "DnsSearch": null,
            "ExtraHosts": null,
            "GroupAdd": null,
            "IPCMode": "ส่วนตัว",
            "กลุ่ม": "",
            "ลิงค์": null,
            "OomScoreAdj": 0,
            "โหมดพิด": "",
            "สิทธิพิเศษ": เท็จ
            "PublishAllPorts": เท็จ
            "ReadonlyRootfs": เท็จ
            "SecurityOpt": null,
            "UTSMode": "",
            "โหมดผู้ใช้": "",
            "ShmSize": 67108864,
            "รันไทม์": "รันไทม์",
            "ขนาดคอนโซล": [
                0,
                0
            ]
            "การแยกตัว": "",
            "CpuShares": 0,
            "หน่วยความจำ": 0,
            "นาโนซีพียู": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "ระยะเวลาซีพียู": 0,
            "โควต้าซีพียู": 0,
            "CpuRealtimePeriod": 0,
            "ซีพียูเรียลไทม์รันไทม์": 0,
            "ซีพียูเซ็ตซีพียู": "",
            "CpusetMems": "",
            "อุปกรณ์": null,
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "หน่วยความจำเคอร์เนล": 0,
            "เคอร์เนลหน่วยความจำ TCP": 0,
            "การจองหน่วยความจำ": 0,
            "สลับหน่วยความจำ": 0,
            "MemorySwappiness": null,
            "OomKillDisable": null,
            "PidsLimit": null,
            "Ulimits": null,
            "จำนวนซีพียู": 0,
            "เปอร์เซ็นต์ซีพียู": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "เส้นทางที่สวมหน้ากาก": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/เฟิร์มแวร์"
            ]
            "เส้นทางแบบอ่านอย่างเดียว": [
                "/proc/บัส",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-ทริกเกอร์"
            ]
        },
        "โปรแกรมควบคุมกราฟ": {
            "ข้อมูล": null,
            "ชื่อ": "btrfs"
        },
        "เมาท์": [
            {
                "ประเภท": "ผูก",
                "แหล่งที่มา": "/home/winfield/contain/atsuo.tg/site",
                "ปลายทาง": "/usr/share/nginx/html",
                "โหมด": "rw",
                "RW": จริง
                "การขยายพันธุ์": "rprivate"
            }
        ]
        "กำหนดค่า": {
            "ชื่อโฮสต์": "atsuotg",
            "ชื่อโดเมน": "",
            "ผู้ใช้": "",
            "AttachStdin": เท็จ
            "AttachStdout": จริง
            "AttachStderr": จริง
            "พอร์ตที่เปิดเผย": {
                "80/tcp": {}
            },
            "Tty": เท็จ
            "OpenStdin": เท็จ
            "StdinOnce": เท็จ
            "เอ็น": [
                "VIRTUAL_PORT=8001",
                "LETSENCRYPT_HOST=atsuo.tg",
                "VIRTUAL_HOST=atsuo.tg",
                "เส้นทาง=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.21.6",
                "NJS_VERSION=0.7.2",
                "PKG_RELEASE=1"
            ]
            "คำสั่ง": [
                "นิ้งซ์",
                "-ก",
                "ภูตปิด"
            ]
            "รูปภาพ": "nginx:alpine",
            "วอลุ่ม": {
                "/usr/share/nginx/html": {}
            },
            "WorkingDir": "",
            "จุดเริ่มต้น": [
                "/docker-entrypoint.sh"
            ]
            "OnBuild": null,
            "ป้ายกำกับ": {
                "com.docker.compose.config-hash": "1f56d3b21bfd2b60df186db7d9ee19865f777207a470f0f36fd37a27cd65acef",
                "com.docker.compose.container-number": "1",
                "com.docker.compose.depends_on": "",
                "com.docker.compose.oneoff": "เท็จ",
                "com.docker.compose.project": "atsuotg",
                "com.docker.compose.project.config_files": "/home/winfield/contain/atsuo.tg/docker-compose.yaml",
                "com.docker.compose.project.working_dir": "/home/winfield/contain/atsuo.tg",
                "com.docker.compose.service": "atsuo.tg",
                "com.docker.compose.version": "2.2.3",
                "ผู้ดูแล": "ผู้ดูแล NGINX Docker <[email protected]>"
            },
            "StopSignal": "ซิกควิท"
        },
        "การตั้งค่าเครือข่าย": {
            "สะพาน": "",
            "SandboxID": "9339a100e64c7de59e3c6b9f00761ce9bc90789b8139daed8781c14bc91258e8",
            "HairpinMode": เท็จ
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "พอร์ต": {
                "80/tcp": [
                    {
                        "โฮสต์ไอพี": "0.0.0.0",
                        "โฮสต์พอร์ต": "8001"
                    },
                    {
                        "โฮสต์ไอพี": "::",
                        "โฮสต์พอร์ต": "8001"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/9339a100e64c",
            "ที่อยู่ IP รอง": null,
            "ที่อยู่ IPv6 รอง": null,
            "รหัสปลายทาง": "",
            "ประตู": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "ที่อยู่ IP": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "หมายเลขทางกายภาพ": "",
            "เครือข่าย": {
                "ไอโวเน็ต": {
                    "IPAMConfig": null,
                    "ลิงค์": null,
                    "นามแฝง": [
                        "atsuo.tg",
                        "atsuo.tg",
                        "e0b1be5c35ff",
                        "อสุต"
                    ]
                    "NetworkID": "694e4c767b2eeca4c039e518db8294c2cc32a3be38f5dd0ad8779bce4099929c",
                    "EndpointID": "6ccfdba4120787c39c71505403db08c67f32284637e5bbf2c4abbf0cdb8c15b7",
                    "เกตเวย์": "172.18.0.1",
                    "ที่อยู่ IP": "172.18.0.4",
                    "IPPrefixLen": 24,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "ที่อยู่ Mac": "02:42:ac:12:00:04",
                    "DriverOpts": null
                }
            }
        }
    }
]

การกำหนดค่าของเครือข่ายบริดจ์แบบกำหนดเองของ Docker:

[
    {
        "ชื่อ": "ไอโวเน็ต",
        "รหัส": "694e4c767b2eeca4c039e518db8294c2cc32a3be38f5dd0ad8779bce4099929c",
        "สร้างแล้ว": "2022-03-02T11:15:32.631561185-05:00",
        "ขอบเขต": "ท้องถิ่น",
        "คนขับ": "สะพาน",
        "เปิดใช้งาน IPv6": เท็จ
        "IPAM": {
            "ไดรเวอร์": "ค่าเริ่มต้น",
            "ตัวเลือก": {},
            "การกำหนดค่า": [
                {
                    "เครือข่ายย่อย": "172.18.0.0/24",
                    "เกตเวย์": "172.18.0.1"
                }
            ]
        },
        "ภายใน": เท็จ
        "แนบได้": เท็จ
        "ทางเข้า": เท็จ
        "ConfigFrom": {
            "เครือข่าย": ""
        },
        "ConfigOnly": เท็จ
        "คอนเทนเนอร์": {
            "adac9051c7813cd9bab6747c798e058983c061b56fbcc9d5cee9d6dacd35461b": {
                "ชื่อ": "nginx-acme",
                "EndpointID": "15ae704194cf33bad77911800541de67f2ee099229014106af65b09d9bf58fa9",
                "ที่อยู่ Mac": "02:42:ac:12:00:02",
                "ที่อยู่ IPv4": "172.18.0.2/24",
                "ที่อยู่ IPv6": ""
            },
            "e0b1be5c35ff60f337087f58819be190dcf495796114b6a2054dd78cf0e4679c": {
                "ชื่อ": "atsuo.tg",
                "EndpointID": "6ccfdba4120787c39c71505403db08c67f32284637e5bbf2c4abbf0cdb8c15b7",
                "ที่อยู่ Mac": "02:42:ac:12:00:04",
                "ที่อยู่ IPv4": "172.18.0.4/24",
                "ที่อยู่ IPv6": ""
            },
            "e24130ccef2bce43a11ebe5686e9a0ca45a7b0b13e32c4649095d11fd0361123": {
                "ชื่อ": "nginx-proxy",
                "EndpointID": "e653f85d0381f1c3bdaca9935eff3e4129d7941cf9c246d80e181e477c0bd79b",
                "ที่อยู่ Mac": "02:42:ac:12:00:03",
                "ที่อยู่ IPv4": "172.18.0.3/24",
                "ที่อยู่ IPv6": ""
            }
        },
        "ตัวเลือก": {
            "com.docker.network.bridge.enable_icc": "จริง"
        },
        "ป้ายกำกับ": {}
    }
]

ผลลัพธ์ของ iptables-บันทึก บนโฮสต์:

# สร้างโดย iptables-save v1.8.7 เมื่อวันพุธที่ 2 มีนาคม 15:59:49 น. 2565
*กรอง
:อินพุต ยอมรับ [0:0]
:ทิ้งไปข้างหน้า [0:0]
:เอาต์พุตยอมรับ [0:0]
:นักเทียบท่า - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:นักเทียบท่า-ผู้ใช้ - [0:0]
-A ไปข้างหน้า -j นักเทียบท่า-ผู้ใช้
-A ส่งต่อ -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o br-694e4c767b2e -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
-A ส่งต่อ -o br-694e4c767b2e -j นักเทียบท่า
-ไปข้างหน้า -i br-694e4c767b2e ! -o br-694e4c767b2e -j ยอมรับ
-A ไปข้างหน้า -i br-694e4c767b2e -o br-694e4c767b2e -j ยอมรับ
-A FORWARD -o docker0 -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
-A ไปข้างหน้า -o นักเทียบท่า 0 -j นักเทียบท่า
-A ไปข้างหน้า -i docker0 ! -o นักเทียบท่า 0 -j ยอมรับ
-A ไปข้างหน้า -i docker0 -o docker0 -j ยอมรับ
-นักเทียบท่า -d 172.18.0.3/32 ! -i br-694e4c767b2e -o br-694e4c767b2e -p tcp -m tcp --dport 443 -j ยอมรับ
-นักเทียบท่า -d 172.18.0.3/32 ! -i br-694e4c767b2e -o br-694e4c767b2e -p tcp -m tcp --dport 80 -j ยอมรับ
-นักเทียบท่า -d 172.18.0.4/32 ! -i br-694e4c767b2e -o br-694e4c767b2e -p tcp -m tcp --dport 80 -j ยอมรับ
-A DOCKER-ISOLATION-STAGE-1 -i br-694e4c767b2e ! -o br-694e4c767b2e -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j ผลตอบแทน
-A DOCKER-ISOLATION-STAGE-2 -o br-694e4c767b2e -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j ผลตอบแทน
-A นักเทียบท่า-ผู้ใช้ -j ผลตอบแทน
ให้สัญญา
# เสร็จสิ้นวันพุธที่ 2 มีนาคม 15:59:49 น. 2565
# สร้างโดย iptables-save v1.8.7 เมื่อวันพุธที่ 2 มีนาคม 15:59:49 น. 2565
*แนท
: ยอมรับ [0:0]
:อินพุต ยอมรับ [0:0]
:เอาต์พุตยอมรับ [0:0]
:หลังยอมรับ [0:0]
:นักเทียบท่า - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A เอาท์พุท ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A Postrouting -s 172.18.0.0/24 ! -o br-694e4c767b2e -j สวมหน้ากาก
-A โพสต์ -s 172.17.0.0/16 ! -o docker0 -j สวมหน้ากาก
-A POSTROUTING -s 172.18.0.3/32 -d 172.18.0.3/32 -p tcp -m tcp --dport 443 -j MASQUERADE
-A POSTROUTING -s 172.18.0.3/32 -d 172.18.0.3/32 -p tcp -m tcp --dport 80 -j MASQUERADE
-A POSTROUTING -s 172.18.0.4/32 -d 172.18.0.4/32 -p tcp -m tcp --dport 80 -j MASQUERADE
-นักเทียบท่า -i br-694e4c767b2e -j ผลตอบแทน
-A นักเทียบท่า -i นักเทียบท่า 0 -j ผลตอบแทน
- นักเทียบท่า ! -i br-694e4c767b2e -p tcp -m tcp --dport 443 -j DNAT --to-ปลายทาง 172.18.0.3:443
- นักเทียบท่า ! -i br-694e4c767b2e -p tcp -m tcp --dport 80 -j DNAT --to-ปลายทาง 172.18.0.3:80
- นักเทียบท่า ! -i br-694e4c767b2e -p tcp -m tcp --dport 8001 -j DNAT --to-ปลายทาง 172.18.0.4:80
ให้สัญญา
# เสร็จสิ้นวันพุธที่ 2 มีนาคม 15:59:49 น. 2565

ผลลัพธ์ของ lsof -i -P -n | ฟัง บนโฮสต์:

systemd-r 911 systemd-resolve 12u IPv4 22667 0t0 TCP *:5355 (ฟัง)
systemd-r 911 systemd-resolve 14u IPv6 22670 0t0 TCP *:5355 (ฟัง)
systemd-r 911 systemd-resolve 18u IPv4 22673 0t0 TCP 127.0.0.53:53 (ฟัง)
systemd-r 911 systemd-resolve 20u IPv4 22675 0t0 TCP 127.0.0.54:53 (ฟัง)
sshd 914 รูท 3u IPv4 46226 0t0 TCP *:26506 (ฟัง)
sshd 914 รูท 4u IPv6 46228 0t0 TCP *:26506 (ฟัง)
mariadbd 964 mysql 19u IPv4 57354 0t0 TCP *:3306 (ฟัง)
mariadbd 964 mysql 21u IPv6 57355 0t0 TCP *:3306 (ฟัง)
นักเทียบท่า-pr 2674 รูท 4u IPv4 53545 0t0 TCP *:443 (ฟัง)
นักเทียบท่า-pr 2681 รูท 4u IPv6 62592 0t0 TCP *:443 (ฟัง)
นักเทียบท่า-pr 2694 รูท 4u IPv4 51280 0t0 TCP *:80 (ฟัง)
นักเทียบท่า-pr 2700 รูท 4u IPv6 53552 0t0 TCP *:80 (ฟัง)
นักเทียบท่า-pr 3591 รูท 4u IPv4 50347 0t0 TCP *:8001 (ฟัง)
นักเทียบท่า-pr 3597 รูท 4u IPv6 46444 0t0 TCP *:8001 (ฟัง)
vidarlo avatar
ar flag
โพสต์การกำหนดค่าของคุณสำหรับ docker และ nginx มิฉะนั้นเรากำลังทำงานตาบอด
etd avatar
cn flag
etd
@vidarlo โอเค ฉันได้เพิ่มสิ่งที่ฉันคิดว่าสามารถช่วยได้ การกำหนดค่าสำหรับเซิร์ฟเวอร์ nginx ภายในเป็นค่าเริ่มต้น จากอิมเมจ nginx:alpine
co flag
คำถามนี้จะไม่มีรายละเอียดที่จำเป็นในการตอบคำถามหากและเมื่อใดที่ลิงก์เสีย โปรดตรวจสอบให้แน่ใจว่าได้รวมเนื้อหาที่จำเป็นทั้งหมดเพื่อตอบคำถามไว้ที่นี่แล้ว และลิงก์มีไว้สำหรับรายละเอียดเพิ่มเติมเท่านั้น
etd avatar
cn flag
etd
@BMitch ตกลงนั่นสมเหตุสมผลแล้ว ฉันได้ย้ายทุกอย่างไปที่เนื้อหาของโพสต์แล้ว
Score:0
ธง co

เดอะ VIRTUAL_PORT การตั้งค่าดูไม่ถูกต้อง คุณกำลังใช้ VIRTUAL_PORT=8001 ในขณะที่คอนเทนเนอร์กำลังฟังพอร์ต 80 ดังนั้นคุณควรมี VIRTUAL_PORT=80.

การเชื่อมต่อระหว่างคอนเทนเนอร์เกิดขึ้นบนเครือข่ายที่ผู้ใช้ทั่วไปสร้างขึ้น (เช่น ไอโวเน็ต) และบนพอร์ตคอนเทนเนอร์ พอร์ตที่เผยแพร่บนโฮสต์มีไว้สำหรับผู้ใช้ภายนอกในการเข้าถึงคอนเทนเนอร์โดยเชื่อมต่อกับพอร์ตโฮสต์ซึ่งส่งต่อไปยังพอร์ตคอนเทนเนอร์

etd avatar
cn flag
etd
โอ้ geez ที่ทำอย่างนั้น ฉันมีอะไรให้เรียนรู้อีกมาก :|

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา