Telegram Group & Telegram Channel
🧠 DevOps-задача: "Контейнер Шрёдингера"

Условие:
Ты получаешь баг-репорт:
> "Приложение внутри Docker-контейнера после деплоя не работает, но docker exec показывает, что оно запущено, порт слушает, ошибок нет. Однако при curl изнутри — всё работает, а снаружи — нет ответа."

Что известно:

- Docker-контейнер на основе alpine:3.18
- Приложение запускается через CMD ["/bin/service-start"]
- Порт 8080 проброшен (`-p 8080:8080`)
- curl localhost:8080 внутри контейнера возвращает 200 OK
- curl localhost:8080 на хосте — зависает
- netstat -tulpn показывает, что порт 8080 прослушивается внутри

Задача:
Найди вероятную причину, предложи способ воспроизведения, диагностики и исправления. Подумай как DevOps, а не просто как админ.

📌 Разбор:

🕵️ Подвох №1: **приложение слушает
127.0.0.1:8080**, а не 0.0.0.0
• внутри `curl localhost:8080` работает
• а хост не может достучаться, потому что `127.0.0.1` — это loopback внутри контейнера, а не на host

Решение:
- Проверить снаружи: `docker inspect <container_id> | grep IPAddress`
- Проверить bind-порт внутри:
```bash
netstat -tulpn | grep 8080
# или ss -tulpn | grep 8080
```
- Если видим `
127.0.0.1:8080` — всё ясно: нужно слушать на `0.0.0.0:8080`

🛠 Исправление:

1. Проверь запуск приложения. Может, внутри у тебя:
```bash
python3
app.py
```
и он слушает только на localhost? Добавь:
```bash
python3
app.py --host=0.0.0.0
```

2. В Go, Node.js, Python и т.д. — по умолчанию bind'ят на
127.0.0.1
Проверь в настройках приложения или командной строке

🎯 Что проверяет задача:


• Умение мыслить в терминах изоляции контейнеров
• Понимание сетевых пространств имён (network namespaces)
• Знание, как работает NAT между контейнером и хостом
• Умение диагностировать "невидимый" bind
• Привычку **проверять всё снаружи**, а не только внутри контейнера

Подобные ошибки легко пропустить, особенно если всё проверяешь изнутри контейнера.



tg-me.com/DevOPSitsec/1492
Create:
Last Update:

🧠 DevOps-задача: "Контейнер Шрёдингера"

Условие:
Ты получаешь баг-репорт:
> "Приложение внутри Docker-контейнера после деплоя не работает, но docker exec показывает, что оно запущено, порт слушает, ошибок нет. Однако при curl изнутри — всё работает, а снаружи — нет ответа."

Что известно:

- Docker-контейнер на основе alpine:3.18
- Приложение запускается через CMD ["/bin/service-start"]
- Порт 8080 проброшен (`-p 8080:8080`)
- curl localhost:8080 внутри контейнера возвращает 200 OK
- curl localhost:8080 на хосте — зависает
- netstat -tulpn показывает, что порт 8080 прослушивается внутри

Задача:
Найди вероятную причину, предложи способ воспроизведения, диагностики и исправления. Подумай как DevOps, а не просто как админ.

📌 Разбор:

🕵️ Подвох №1: **приложение слушает
127.0.0.1:8080**, а не 0.0.0.0
• внутри `curl localhost:8080` работает
• а хост не может достучаться, потому что `127.0.0.1` — это loopback внутри контейнера, а не на host

Решение:
- Проверить снаружи: `docker inspect <container_id> | grep IPAddress`
- Проверить bind-порт внутри:
```bash
netstat -tulpn | grep 8080
# или ss -tulpn | grep 8080
```
- Если видим `
127.0.0.1:8080` — всё ясно: нужно слушать на `0.0.0.0:8080`

🛠 Исправление:

1. Проверь запуск приложения. Может, внутри у тебя:
```bash
python3
app.py
```
и он слушает только на localhost? Добавь:
```bash
python3
app.py --host=0.0.0.0
```

2. В Go, Node.js, Python и т.д. — по умолчанию bind'ят на
127.0.0.1
Проверь в настройках приложения или командной строке

🎯 Что проверяет задача:


• Умение мыслить в терминах изоляции контейнеров
• Понимание сетевых пространств имён (network namespaces)
• Знание, как работает NAT между контейнером и хостом
• Умение диагностировать "невидимый" bind
• Привычку **проверять всё снаружи**, а не только внутри контейнера

Подобные ошибки легко пропустить, особенно если всё проверяешь изнутри контейнера.

BY DevOps


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/DevOPSitsec/1492

View MORE
Open in Telegram


DevOps Telegram | DID YOU KNOW?

Date: |

Spiking bond yields driving sharp losses in tech stocks

A spike in interest rates since the start of the year has accelerated a rotation out of high-growth technology stocks and into value stocks poised to benefit from a reopening of the economy. The Nasdaq has fallen more than 10% over the past month as the Dow has soared to record highs, with a spike in the 10-year US Treasury yield acting as the main catalyst. It recently surged to a cycle high of more than 1.60% after starting the year below 1%. But according to Jim Paulsen, the Leuthold Group's chief investment strategist, rising interest rates do not represent a long-term threat to the stock market. Paulsen expects the 10-year yield to cross 2% by the end of the year. A spike in interest rates and its impact on the stock market depends on the economic backdrop, according to Paulsen. Rising interest rates amid a strengthening economy "may prove no challenge at all for stocks," Paulsen said.

Telegram Auto-Delete Messages in Any Chat

Some messages aren’t supposed to last forever. There are some Telegram groups and conversations where it’s best if messages are automatically deleted in a day or a week. Here’s how to auto-delete messages in any Telegram chat. You can enable the auto-delete feature on a per-chat basis. It works for both one-on-one conversations and group chats. Previously, you needed to use the Secret Chat feature to automatically delete messages after a set time. At the time of writing, you can choose to automatically delete messages after a day or a week. Telegram starts the timer once they are sent, not after they are read. This won’t affect the messages that were sent before enabling the feature.

DevOps from ar


Telegram DevOps
FROM USA