Две короткие статьи по работе с #docker
Initialize RabbitMq Docker Container with preconfigured Queues - может быть полезно при разработке/тестировании #rabbitmq
Nginx and Load Balancing - использование scale для поднятия нескольких инстансов контейнера - например, для тестирования балансировки нагрузки
Initialize RabbitMq Docker Container with preconfigured Queues - может быть полезно при разработке/тестировании #rabbitmq
Nginx and Load Balancing - использование scale для поднятия нескольких инстансов контейнера - например, для тестирования балансировки нагрузки
Маленькие хитрости #docker - как подождать пока postgres (или любой другой сервис) придёт в норму после старта. У Postgres к примеру это занимает несколько секунд на холодный старт (=инициализация контейнера с созданием БД)
Если у вас отвалился Docker после очередного обновления Windows или самого Docker - не забываем качать обновление WSL и ставить. Время от времени после обновления винды (или Docker) у них бывает как-то рассогласовываются версии и Docker при старте валица с ошибкой на скриншоте.
Приходица руками качать msixbundle и апдейтить версию WSL, после чего всё начинает снова работать. #docker
Приходица руками качать msixbundle и апдейтить версию WSL, после чего всё начинает снова работать. #docker
👍7
Столкнулся тут с необходимости поснифать на DEV среде трафик между контейнерами докера... Некоторое количество командных строк на память.
Для начала с помощью
Дампы пакетов в ASCII ( -A ):
Тоже самое + поиск по подстроке 'Sec-WebSocket-Key':
Фильтрация только с флагом SYN (например для того чтобы посмотреть установку входящих соединений):
Мониторинг keep-alive пакетов
Отображение заголовков http-пакетов GET/POST/HEAD
Ну а потом я вспомнил, что есть такой инструмент как nast, который позволяет дампить более простой строкой как заголовки так и тело входящего запроса:
#tools #docker #tcpdump
Для начала с помощью
docker network ls
надо выяснить id нужного интерфейса (далее этот id написан как INTERFACE), 8000 - это exposed port моего контейнера.Дампы пакетов в ASCII ( -A ):
tcpdump -i INTERFACE 'tcp dst port 8000' -A
Тоже самое + поиск по подстроке 'Sec-WebSocket-Key':
tcpdump -i INTERFACE 'tcp dst port 8000' -A | grep 'Sec-WebSocket-Key:'
Фильтрация только с флагом SYN (например для того чтобы посмотреть установку входящих соединений):
tcpdump -i INTERFACE 'tcp dst port 8000 and (tcp[tcpflags] & (tcp-syn) != 0)' -A
Мониторинг keep-alive пакетов
tcpdump -i INTERFACE 'tcp dst port 8000 and (tcp[tcpflags] == tcp-ack and less 1)' -A
Отображение заголовков http-пакетов GET/POST/HEAD
tcpdump -i INTERFACE 'tcp dst port 8000' -A | egrep --line-buffered "^........(GET |HTTP\/|POST |HEAD )|^[A-Za-z0-9-]+: " | sed -r 's/^........(GET |HTTP\/|POST |HEAD )/\n\1/g'
Ну а потом я вспомнил, что есть такой инструмент как nast, который позволяет дампить более простой строкой как заголовки так и тело входящего запроса:
nast -i INTERFACE -d -f 'tcp dst port 8000'
#tools #docker #tcpdump
👍8
Docker profiles - удобная фича, которая позволяет более гибко использовать один и тот же docker-compose файл, но с разными комплектами сервисов (например).
Если на пальцах - каждый сервис может содержать список профилей, в которые он включается. Потом делаешь
и оно билдит (или стартует если up) только те сервисы, в которых упомянут профиль
Если на пальцах - каждый сервис может содержать список профилей, в которые он включается. Потом делаешь
docker compose --profile with-db build
и оно билдит (или стартует если up) только те сервисы, в которых упомянут профиль
with-db
или не упомянуто профилей вообще. #docker #tools👍7
Внезапно словил runtime-ошибку
Only the invariant culture is supported in globalization-invariant mode. See https://aka.ms/GlobalizationInvariantMode for more information.
когда добавил ru-RU и пару других культур в форматирование даты. Забыл, что в Dockerfile надо добавлять пару строк для линуксов. В интернетах легко гуглица эта ошибка, но пусть будет и тут:
#docker #dotnet
Only the invariant culture is supported in globalization-invariant mode. See https://aka.ms/GlobalizationInvariantMode for more information.
когда добавил ru-RU и пару других культур в форматирование даты. Забыл, что в Dockerfile надо добавлять пару строк для линуксов. В интернетах легко гуглица эта ошибка, но пусть будет и тут:
RUN apk --no-cache add icu-libs
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
#docker #dotnet
👍7💩1
Кто-то недавно спрашивал про Docker - типа how to, так вот нашлось прекрасное - можно поиграца как в вебморде, так и выполнить команды соответственно локально. На мой взгляд это отличная тема для тех, кто только только начинает с докером. Ну и там не только про докер есть. #docker #howto
❤14🔥8👍6
Как захостить сайт в Windows контейнере в докере. Сложно сказать, зачем это может понадобиться в 2025-м, но пусть будет. #docker
😁6👍1🤔1