Рейтинг:0

Возможно, я сломал сопоставление контейнерных портов.

флаг cn
etd

Отображение портов не работает. Я не знаю, то ли это я сделал, то ли что.

Настраивать: Arch Linux с ядром 5.16, Docker 20.10.12, с использованием nginx-прокси со своим лучшим компаньоном для получения сертификатов для различных приложений в других контейнерах. Все определенно работало хорошо.

И вдруг я начал получать 502 ошибки прокси nginx. Он не мог получить доступ к контейнерным приложениям через указанные мной порты. После расследования я обнаружил, что другие контейнеры просто открывали любые порты на хосте, которые хотели. Хост даже думает, что изначально указанный порт открыт, но это не так. Так, например, одно из моих приложений — это просто nginx, снова обслуживающий веб-сайт. Я сказал Докеру сопоставить порт 8001 на хосте 80 в контейнере. И тогда, когда я использую lsof чтобы показать, какие порты открыты на хосте, я вижу, что 8001 используется. Но тогда я не могу получить к нему доступ, я могу получить доступ к нему через порт 80 (хотя 80 также используется прокси-сервером nginx). карта подтверждает, что на контейнере действительно открыт только порт 80.

Недавно я изменил политику по умолчанию в цепочке FORWARD в iptables. Я не понимаю, почему изменение значения по умолчанию имеет значение для пакетов, которые уже куда-то направляются.

Конфигурация:

Конфиг контейнера nginx-proxy:

[
    {
        «Идентификатор»: «e24130ccef2bce43a11ebe5686e9a0ca45a7b0b13e32c4649095d11fd0361123»,
        "Создано": "2022-03-02T16:16:07.626095681Z",
        «Путь»: «/app/docker-entrypoint.sh»,
        "Аргументы": [
            "отказаться",
            "Начало",
            "-р"
        ],
        "Государственный": {
            "Статус": "работает",
            "Бег": правда,
            «Приостановлено»: ложь,
            «Перезапуск»: ложь,
            "OOMKilled": ложь,
            «Мертвый»: ложь,
            "Пид": 2767,
            «Код выхода»: 0,
            "Ошибка": "",
            "StartedAt": "2022-03-02T16:16:08.672491906Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Изображение": "sha256:82ea330a72d6f9d955287dc6e2c4c57a1466d480688574a4d0997c981bc495f3",
        "ResolvConfPath": "/var/lib/docker/containers/e24130ccef2bce43a11ebe5686e9a0ca45a7b0b13e32c4649095d11fd0361123/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/e24130ccef2bce43a11ebe5686e9a0ca45a7b0b13e32c4649095d11fd0361123/hostname",
        "HostsPath": "/var/lib/docker/containers/e24130ccef2bce43a11ebe5686e9a0ca45a7b0b13e32c4649095d11fd0361123/hosts",
        "LogPath": "/var/lib/docker/containers/e24130ccef2bce43a11ebe5686e9a0ca45a7b0b13e32c4649095d11fd0361123/e24130ccef2bce43a11ebe5686e9a0ca45a7b0b13e32c4619093d1619095d1619095d
        "Имя": "/nginx-прокси",
        "RestartCount": 0,
        "Драйвер": "btrfs",
        «Платформа»: «линукс»,
        "Маунтлейбл": "",
        "МеткаПроцесса": "",
        "AppArmorProfile": "",
        «ExecIDs»: ноль,
        "Конфигурация хоста": {
            "Связывает": [
                "/var/run/docker.sock:/tmp/docker.sock:ro"
            ],
            "ContainerIDFile": "",
            "ЛогКонфиг": {
                "Тип": "json-файл",
                "Конфигурация": {}
            },
            «NetworkMode»: «ивонет»,
            «Привязки портов»: {
                "443/TCP": [
                    {
                        "HostIp": "",
                        "ХостПорт": "443"
                    }
                ],
                "80/TCP": [
                    {
                        "HostIp": "",
                        "ХостПорт": "80"
                    }
                ]
            },
            «Политика перезапуска»: {
                "Имя": "всегда",
                «Максимальное количество повторов»: 0
            },
            "Автоудаление": ложь,
            "Драйвер Тома": "",
            "VolumesFrom": ноль,
            "CapAdd": ноль,
            "CapDrop": ноль,
            "CgroupnsMode": "частный",
            "Днс": ноль,
            "DnsOptions": ноль,
            "DnsSearch": ноль,
            «Дополнительные хосты»: ноль,
            «Групповое добавление»: ноль,
            «IpcMode»: «частный»,
            "Группа": "",
            "Ссылки": ноль,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Привилегированный": ложь,
            "PublishAllPorts": ложь,
            "ReadonlyRootfs": ложь,
            «SecurityOpt»: ноль,
            "UTSMode": "",
            "UsernsMode": "",
            "ШмСайз": 67108864,
            «Время выполнения»: «runc»,
            «Размер консоли»: [
                0,
                0
            ],
            "Изоляция": "",
            "Общие ресурсы ЦП": 0,
            "Память": 0,
            "НаноЦП": 0,
            "CgroupParent": "",
            "БлкиоВес": 0,
            "BlkioWeightDevice": ноль,
            «Блкиодевицереадбпс»: ноль,
            "BlkioDeviceWriteBps": ноль,
            "BlkioDeviceReadIOps": ноль,
            "BlkioDeviceWriteIOps": ноль,
            "ЦПпериод": 0,
            "Квота ЦП": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            «Устройства»: ноль,
            "DeviceCgroupRules": ноль,
            «DeviceRequests»: ноль,
            «Память ядра»: 0,
            "KernelMemoryTCP": 0,
            «Резервирование памяти»: 0,
            "Обмен Памяти": 0,
            "MemorySwappiness": ноль,
            "OomKillDisable": ноль,
            "PidsLimit": ноль,
            «Ulimits»: ноль,
            "Количество процессоров": 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/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/прок/скси",
                "/sys/прошивка"
            ],
            "Пути только для чтения": [
                "/прок/автобус",
                "/прок/фс",
                "/прок/ирк",
                "/прок/систем",
                "/proc/sysrq-триггер"
            ]
        },
        "Графдрайвер": {
            «Данные»: ноль,
            "Имя": "btrfs"
        },
        "Крепления": [
            {
                "Тип": "объем",
                "Имя": "nginx-proxy_html",
                "Источник": "/var/lib/docker/volumes/nginx-proxy_html/_data",
                «Назначение»: «/usr/share/nginx/html»,
                "Водитель": "местный",
                «Режим»: «з»,
                "RW": правда,
                "Распространение": ""
            },
            {
                "Тип": "объем",
                "Имя": "nginx-proxy_certs",
                "Источник": "/var/lib/docker/volumes/nginx-proxy_certs/_data",
                «Назначение»: «/etc/nginx/certs»,
                "Водитель": "местный",
                «Режим»: «з»,
                "RW": ложь,
                "Распространение": ""
            },
            {
                "Тип": "связать",
                "Источник": "/var/run/docker.sock",
                «Назначение»: «/tmp/docker.sock»,
                «Режим»: «ро»,
                "RW": ложь,
                «Распространение»: «rprivate»
            },
            {
                "Тип": "объем",
                «Имя»: «nginx-proxy_conf»,
                "Источник": "/var/lib/docker/volumes/nginx-proxy_conf/_data",
                "Назначение": "/etc/nginx/conf.d",
                "Водитель": "местный",
                «Режим»: «з»,
                "RW": правда,
                "Распространение": ""
            },
            {
                "Тип": "объем",
                «Имя»: «nginx-proxy_vhost»,
                "Источник": "/var/lib/docker/volumes/nginx-proxy_vhost/_data",
                "Назначение": "/etc/nginx/vhost.d",
                "Водитель": "местный",
                «Режим»: «з»,
                "RW": правда,
                "Распространение": ""
            }
        ],
        "Конфигурация": {
            "Имя хоста": "nginx-прокси",
            "Доменное имя": "",
            "Пользователь": "",
            "AttachStdin": ложь,
            "AttachStdout": правда,
            "AttachStderr": правда,
            «Открытые порты»: {
                "443/TCP": {},
                "80/TCP": {}
            },
            "Tty": ложь,
            «ОпенСтдин»: ложь,
            «StdinOnce»: ложь,
            "окружение": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.21.6",
                "ВЕРСИЯ_NJS=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"
            ],
            "Команд": [
                "отказаться",
                "Начало",
                "-р"
            ],
            "Image": "nginxproxy/nginx-proxy:alpine",
            "Тома": {
                "/etc/nginx/certs": {},
                "/etc/nginx/conf.d": {},
                "/etc/nginx/vhost.d": {},
                "/tmp/docker.sock": {},
                "/usr/share/nginx/html": {}
            },
            "РабочийКаталог": "/приложение",
            "Точка входа": [
                "/приложение/докер-entrypoint.sh"
            ],
            "OnBuild": ноль,
            "Ярлыки": {
                "com.docker.compose.config-hash": "3324b86760e2e436e707f1310aef7724e088d661c1bbeaaf573104e2644a08b0",
                "com.docker.compose.container-номер": "1",
                "com.docker.compose.depends_on": "",
                "com.docker.compose.image": "sha256:82ea330a72d6f9d955287dc6e2c4c57a1466d480688574a4d0997c981bc495f3",
                "com.docker.compose.oneoff": "Ложь",
                "com.docker.compose.project": "nginx-прокси",
                "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-прокси",
                "com.docker.compose.version": "2.2.3",
                "maintainer": "Сопровождающие NGINX Docker <[email protected]>",
                "org.opencontainers.image.authors": "Николас Дюшон <[email protected]> (@buchdag), Джейсон Уайлдер",
                "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-прокси",
                "org.opencontainers.image.url": "https://github.com/nginx-proxy/nginx-proxy",
                "org.opencontainers.image.version": "0.10.1-29-gfb8ddfd"
            },
            «СтопСигнал»: «SIGQUIT»
        },
        "Сетевые настройки": {
            "Мост": "",
            "SandboxID": "cb385fa1d3dab87cccd2d89e70708e27e8bc1815867ae5fbc7e1c2f75000dc25",
            «Режим шпильки»: ложь,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Порты": {
                "443/TCP": [
                    {
                        "HostIp": "0.0.0.0",
                        "ХостПорт": "443"
                    },
                    {
                        "HostIp": "::",
                        "ХостПорт": "443"
                    }
                ],
                "80/TCP": [
                    {
                        "HostIp": "0.0.0.0",
                        "ХостПорт": "80"
                    },
                    {
                        "HostIp": "::",
                        "ХостПорт": "80"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/cb385fa1d3da",
            «Вторичные IP-адреса»: ноль,
            "SecondaryIPv6Addresses": ноль,
            "Конечная точка": "",
            "Шлюз": "",
            "Глобальный IPv6-адрес": "",
            "GlobalIPv6PrefixLen": 0,
            "Айпи адрес": "",
            "IPPrefixLen": 0,
            "Шлюз IPv6": "",
            "MAC-адрес": "",
            "Сети": {
                "ивонет": {
                    "IPAMConfig": ноль,
                    "Ссылки": ноль,
                    "Псевдонимы": [
                        "nginx-прокси",
                        "nginx-прокси",
                        "e24130ccef2b"
                    ],
                    "NetworkID": "694e4c767b2eeca4c039e518db8294c2cc32a3be38f5dd0ad8779bce4099929c",
                    "EndpointID": "e653f85d0381f1c3bdaca9935eff3e4129d7941cf9c246d80e181e477c0bd79b",
                    «Шлюз»: «172.18.0.1»,
                    "IP-адрес": "172.18.0.3",
                    «ИППрефиксЛен»: 24,
                    "Шлюз IPv6": "",
                    "Глобальный IPv6-адрес": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:12:00:03",
                    «Драйвероптс»: ноль
                }
            }
        }
    }
]

Конфиг проксируемого контейнера nginx:

[
    {
        «Идентификатор»: «e0b1be5c35ff60f337087f58819be190dcf495796114b6a2054dd78cf0e4679c»,
        "Создано": "2022-03-02T16:16:23.658997558Z",
        «Путь»: «/docker-entrypoint.sh»,
        "Аргументы": [
            "нгинкс",
            "-г",
            "демон выключен";
        ],
        "Государственный": {
            "Статус": "работает",
            "Бег": правда,
            «Приостановлено»: ложь,
            «Перезапуск»: ложь,
            "OOMKilled": ложь,
            «Мертвый»: ложь,
            "Пид": 3633,
            «Код выхода»: 0,
            "Ошибка": "",
            "StartedAt": "2022-03-02T16:16:24.099412527Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Изображение": "sha256:bef258acf10dc257d641c47c3a600c92f87be4b4ce4a5e4752b3eade7533dcd9",
        "ResolvConfPath": "/var/lib/docker/containers/e0b1be5c35ff60f337087f58819be190dcf495796114b6a2054dd78cf0e4679c/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/e0b1be5c35ff60f337087f58819be190dcf495796114b6a2054dd78cf0e4679c/hostname",
        "HostsPath": "/var/lib/docker/containers/e0b1be5c35ff60f337087f58819be190dcf495796114b6a2054dd78cf0e4679c/hosts",
        "LogPath": "/var/lib/docker/containers/e0b1be5c35ff60f337087f58819be190dcf495796114b6a2054dd78cf0e4679c/e0b1be5c35ff60f337087f58819be190dcf4957979114b7a2054",jlog-ceddson.
        "Имя": "/atsuo.tg",
        "RestartCount": 0,
        "Драйвер": "btrfs",
        «Платформа»: «линукс»,
        "Маунтлейбл": "",
        "МеткаПроцесса": "",
        "AppArmorProfile": "",
        «ExecIDs»: ноль,
        "Конфигурация хоста": {
            "Связывает": [
                "/home/winfield/contain/atsuo.tg/site:/usr/share/nginx/html:rw"
            ],
            "ContainerIDFile": "",
            "ЛогКонфиг": {
                "Тип": "json-файл",
                "Конфигурация": {}
            },
            «NetworkMode»: «ивонет»,
            «Привязки портов»: {
                "80/TCP": [
                    {
                        "HostIp": "",
                        «ХостПорт»: «8001»
                    }
                ]
            },
            «Политика перезапуска»: {
                "Имя": "",
                «Максимальное количество повторов»: 0
            },
            "Автоудаление": ложь,
            "Драйвер Тома": "",
            "VolumesFrom": ноль,
            "CapAdd": ноль,
            "CapDrop": ноль,
            "CgroupnsMode": "частный",
            "Днс": ноль,
            "DnsOptions": ноль,
            "DnsSearch": ноль,
            «Дополнительные хосты»: ноль,
            «Групповое добавление»: ноль,
            «IpcMode»: «частный»,
            "Группа": "",
            "Ссылки": ноль,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Привилегированный": ложь,
            "PublishAllPorts": ложь,
            "ReadonlyRootfs": ложь,
            «SecurityOpt»: ноль,
            "UTSMode": "",
            "UsernsMode": "",
            "ШмСайз": 67108864,
            «Время выполнения»: «runc»,
            «Размер консоли»: [
                0,
                0
            ],
            "Изоляция": "",
            "Общие ресурсы ЦП": 0,
            "Память": 0,
            "НаноЦП": 0,
            "CgroupParent": "",
            "БлкиоВес": 0,
            "BlkioWeightDevice": ноль,
            «Блкиодевицереадбпс»: ноль,
            "BlkioDeviceWriteBps": ноль,
            "BlkioDeviceReadIOps": ноль,
            "BlkioDeviceWriteIOps": ноль,
            "ЦПпериод": 0,
            "Квота ЦП": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            «Устройства»: ноль,
            "DeviceCgroupRules": ноль,
            «DeviceRequests»: ноль,
            «Память ядра»: 0,
            "KernelMemoryTCP": 0,
            «Резервирование памяти»: 0,
            "Обмен Памяти": 0,
            "MemorySwappiness": ноль,
            "OomKillDisable": ноль,
            "PidsLimit": ноль,
            «Ulimits»: ноль,
            "Количество процессоров": 0,
            "Процент ЦП": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "Маскированные пути": [
                "/прок/звук",
                "/прок/акпи",
                "/прок/ккор",
                "/прок/ключи",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/прок/скси",
                "/sys/прошивка"
            ],
            "Пути только для чтения": [
                "/прок/автобус",
                "/прок/фс",
                "/прок/ирк",
                "/прок/систем",
                "/proc/sysrq-триггер"
            ]
        },
        "Графдрайвер": {
            «Данные»: ноль,
            "Имя": "btrfs"
        },
        "Крепления": [
            {
                "Тип": "связать",
                "Источник": "/home/winfield/contain/atsuo.tg/site",
                «Назначение»: «/usr/share/nginx/html»,
                "Режим": "RW",
                "RW": правда,
                «Распространение»: «rprivate»
            }
        ],
        "Конфигурация": {
            "Имя хоста": "atsuotg",
            "Доменное имя": "",
            "Пользователь": "",
            "AttachStdin": ложь,
            "AttachStdout": правда,
            "AttachStderr": правда,
            «Открытые порты»: {
                "80/TCP": {}
            },
            "Tty": ложь,
            «ОпенСтдин»: ложь,
            «StdinOnce»: ложь,
            "окружение": [
                "ВИРТУАЛЬНЫЙ_ПОРТ=8001",
                "LETSENCRYPT_HOST=atsuo.tg",
                "ВИРТУАЛЬНЫЙ_ХОСТ=atsuo.tg",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.21.6",
                "ВЕРСИЯ_NJS=0.7.2",
                "PKG_RELEASE=1"
            ],
            "Команд": [
                "нгинкс",
                "-г",
                "демон выключен";
            ],
            «Изображение»: «nginx:alpine»,
            "Тома": {
                "/usr/share/nginx/html": {}
            },
            "РабочийКаталог": "",
            "Точка входа": [
                "/докер-entrypoint.sh"
            ],
            "OnBuild": ноль,
            "Ярлыки": {
                "com.docker.compose.config-hash": "1f56d3b21bfd2b60df186db7d9ee19865f777207a470f0f36fd37a27cd65acef",
                "com.docker.compose.container-номер": "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",
                "maintainer": "Сопровождающие NGINX Docker <[email protected]>"
            },
            «СтопСигнал»: «SIGQUIT»
        },
        "Сетевые настройки": {
            "Мост": "",
            "SandboxID": "9339a100e64c7de59e3c6b9f00761ce9bc90789b8139daed8781c14bc91258e8",
            «Режим шпильки»: ложь,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Порты": {
                "80/TCP": [
                    {
                        "HostIp": "0.0.0.0",
                        «ХостПорт»: «8001»
                    },
                    {
                        "HostIp": "::",
                        «ХостПорт»: «8001»
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/9339a100e64c",
            «Вторичные IP-адреса»: ноль,
            "SecondaryIPv6Addresses": ноль,
            "Конечная точка": "",
            "Шлюз": "",
            "Глобальный IPv6-адрес": "",
            "GlobalIPv6PrefixLen": 0,
            "Айпи адрес": "",
            "IPPrefixLen": 0,
            "Шлюз IPv6": "",
            "MAC-адрес": "",
            "Сети": {
                "ивонет": {
                    "IPAMConfig": ноль,
                    "Ссылки": ноль,
                    "Псевдонимы": [
                        "atsuo.tg",
                        "atsuo.tg",
                        "e0b1be5c35ff",
                        "ацуотг"
                    ],
                    "NetworkID": "694e4c767b2eeca4c039e518db8294c2cc32a3be38f5dd0ad8779bce4099929c",
                    "EndpointID": "6ccfdba4120787c39c71505403db08c67f32284637e5bbf2c4abbf0cdb8c15b7",
                    «Шлюз»: «172.18.0.1»,
                    "IP-адрес": "172.18.0.4",
                    «ИППрефиксЛен»: 24,
                    "Шлюз IPv6": "",
                    "Глобальный IPv6-адрес": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:12:00:04",
                    «Драйвероптс»: ноль
                }
            }
        }
    }
]

Конфигурация пользовательской мостовой сети Docker:

[
    {
        «Имя»: «ивонет»,
        "Идентификатор": "694e4c767b2eeca4c039e518db8294c2cc32a3be38f5dd0ad8779bce4099929c",
        "Создано": "2022-03-02T11:15:32.631561185-05:00",
        «Область действия»: «местный»,
        «Водитель»: «мост»,
        «Включить IPv6»: ложь,
        "ИПАМ": {
            "Драйвер": "по умолчанию",
            "Параметры": {},
            "Конфигурация": [
                {
                    "Подсеть": "172.18.0.0/24",
                    «Шлюз»: «172.18.0.1»
                }
            ]
        },
        "Внутренний": ложь,
        "Присоединяемый": ложь,
        "Вход": ложь,
        «Конфигурация»: {
            "Сеть": ""
        },
        "Только Конфигурация": ложь,
        "Контейнеры": {
            "adac9051c7813cd9bab6747c798e058983c061b56fbcc9d5cee9d6dacd35461b": {
                «Имя»: «nginx-acme»,
                "EndpointID": "15ae704194cf33bad77911800541de67f2ee099229014106af65b09d9bf58fa9",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4-адрес": "172.18.0.2/24",
                "IPv6-адрес": ""
            },
            "e0b1be5c35ff60f337087f58819be190dcf495796114b6a2054dd78cf0e4679c": {
                "Имя": "atsuo.tg",
                "EndpointID": "6ccfdba4120787c39c71505403db08c67f32284637e5bbf2c4abbf0cdb8c15b7",
                "MacAddress": "02:42:ac:12:00:04",
                "IPv4-адрес": "172.18.0.4/24",
                "IPv6-адрес": ""
            },
            "e24130ccef2bce43a11ebe5686e9a0ca45a7b0b13e32c4649095d11fd0361123": {
                "Имя": "nginx-прокси",
                "EndpointID": "e653f85d0381f1c3bdaca9935eff3e4129d7941cf9c246d80e181e477c0bd79b",
                "MacAddress": "02:42:ac:12:00:03",
                "IPv4-адрес": "172.18.0.3/24",
                "IPv6-адрес": ""
            }
        },
        "Параметры": {
            "com.docker.network.bridge.enable_icc": "true"
        },
        "Ярлыки": {}
    }
]

Вывод iptables-сохранить на хосте:

# Сгенерировано iptables-save v1.8.7 в среду, 2 марта, 15:59:49 2022
*фильтр
:ВВОД ПРИНЯТЬ [0:0]
:ВПЕРЕД КАПИТЬ [0:0]
: ВЫВОД ПРИНЯТЬ [0:0]
:ДОКЕР - [0:0]
:ДОКЕР-ИЗОЛЯЦИЯ-ЭТАП-1 - [0:0]
:ДОКЕР-ИЗОЛЯЦИЯ-ЭТАП-2 - [0:0]
:ДОКЕР-ПОЛЬЗОВАТЕЛЬ - [0:0]
-A FORWARD -j DOCKER-USER
-A ВПЕРЕД -j DOCKER-ИЗОЛЯЦИЯ-ЭТАП-1
-A FORWARD -o br-694e4c767b2e -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A ВПЕРЕД -o br-694e4c767b2e -j ДОКЕР
-A ВПЕРЕД -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 docker0 -j DOCKER
-A ВПЕРЕД -i docker0 ! -o docker0 -j ПРИНЯТЬ
-A ВПЕРЕД -i docker0 -o docker0 -j ПРИНЯТЬ
-A ДОКЕР -d 172.18.0.3/32 ! -i br-694e4c767b2e -o br-694e4c767b2e -p tcp -m tcp --dport 443 -j ПРИНЯТЬ
-A ДОКЕР -d 172.18.0.3/32 ! -i br-694e4c767b2e -o br-694e4c767b2e -p tcp -m tcp --dport 80 -j ПРИНЯТЬ
-A ДОКЕР -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-ИЗОЛЯЦИЯ-ЭТАП-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 DOCKER-USER -j ВОЗВРАТ
СОВЕРШИТЬ
# Завершено в среду, 2 марта, 15:59:49 2022 г.
# Сгенерировано iptables-save v1.8.7 в среду, 2 марта, 15:59:49 2022
*натуральный
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [0:0]
:ВВОД ПРИНЯТЬ [0:0]
: ВЫВОД ПРИНЯТЬ [0:0]
:ОТПРАВКА ПРИНЯТИЯ [0:0]
:ДОКЕР - [0:0]
-A PREROUTING -m тип_адреса --dst-type МЕСТНЫЙ -j DOCKER
- ВЫХОД! -d 127.0.0.0/8 -m тип_адреса --dst-тип ЛОКАЛЬНЫЙ -j DOCKER
-A POSTOUTING -s 172.18.0.0/24 ! -o br-694e4c767b2e -j МАСКАРАД
-A POSTOUTING -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
-A ДОКЕР -i br-694e4c767b2e -j ВОЗВРАТ
-A ДОКЕР -i docker0 -j ВОЗВРАТ
- ДОКЕР! -i br-694e4c767b2e -p tcp -m tcp --dport 443 -j DNAT --назначение 172.18.0.3:443
- ДОКЕР! -i br-694e4c767b2e -p tcp -m tcp --dport 80 -j DNAT --назначение 172.18.0.3:80
- ДОКЕР! -i br-694e4c767b2e -p tcp -m tcp --dport 8001 -j DNAT --назначение 172.18.0.4:80
СОВЕРШИТЬ
# Завершено в среду, 2 марта, 15:59:49 2022 г.

Вывод lsof -i -P -n | grep СЛУШАТЬ на хосте:

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 root 3u IPv4 46226 0t0 TCP *:26506 (СЛУШАТЬ)
sshd 914 root 4u IPv6 46228 0t0 TCP *:26506 (СЛУШАТЬ)
mariadbd 964 mysql 19u IPv4 57354 0t0 TCP *:3306 (СЛУШАТЬ)
mariadbd 964 mysql 21u IPv6 57355 0t0 TCP *:3306 (СЛУШАТЬ)
docker-pr 2674 root 4u IPv4 53545 0t0 TCP *:443 (СЛУШАТЬ)
docker-pr 2681 root 4u IPv6 62592 0t0 TCP *:443 (СЛУШАТЬ)
docker-pr 2694 root 4u IPv4 51280 0t0 TCP *:80 (СЛУШАТЬ)
docker-pr 2700 root 4u IPv6 53552 0t0 TCP *:80 (СЛУШАТЬ)
docker-pr 3591 root 4u IPv4 50347 0t0 TCP *:8001 (СЛУШАТЬ)
docker-pr 3597 root 4u IPv6 46444 0t0 TCP *:8001 (СЛУШАТЬ)
vidarlo avatar
флаг ar
Опубликуйте свою конфигурацию для docker и nginx. Иначе мы бежим вслепую.
etd avatar
флаг cn
etd
@vidarlo хорошо, я добавил то, что, по моему мнению, может помочь. Конфигурация внутреннего сервера nginx по умолчанию из образа nginx:alpine.
флаг co
В этом вопросе будут отсутствовать детали, необходимые для ответа, если и когда ссылки испортятся. Пожалуйста, убедитесь, что весь необходимый контент для ответа на вопрос включен здесь, а ссылки предназначены только для дополнительной информации.
etd avatar
флаг cn
etd
@BMitch хорошо, это имеет смысл. Я перенес все в тело поста
Рейтинг:0
флаг co

ВИРТУАЛЬНЫЙ_ПОРТ настройка выглядит неправильно. Ты используешь ВИРТУАЛЬНЫЙ_ПОРТ=8001 пока контейнер прослушивает порт 80. Вместо этого вы должны иметь ВИРТУАЛЬНЫЙ_ПОРТ=80.

Связь между контейнерами происходит в общей сети, созданной пользователем (например, ивонет), так и в контейнерных портах. Опубликованный порт на хосте предназначен для внешних пользователей для доступа к контейнеру путем подключения к порту хоста, который перенаправляется на порт контейнера.

etd avatar
флаг cn
etd
О боже, это делает это. Мне нужно многому научиться :|

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.