George
а то мы тут все лохи и не понимаем
George
ну, лохи - это лососи по-фински, по-моему
Jürgen
George
эм вообще не в курил
expose - зачем он нужен?
George
топик дня
Jürgen
expose - зачем он нужен?
открытие порта) тупо говорит контейнеру открыть порт определенный) если я правильно помню
Jürgen
то есть просто открываем порт на котором будем слушать не надо путать с паблишинг
George
что значит «контейнер открыть порт»?
George
там же файрволла внутри нет
Filipp
открытие порта) тупо говорит контейнеру открыть порт определенный) если я правильно помню
мы тут экспериментально проверили что запустив внутри контейнера (созданного без --expose) пхп built-in сервер на любом порту, к нему можно достучатся зная IP контейнера и порт (и находясь в той же докер-сети)
Jürgen
что значит «контейнер открыть порт»?
смотри когда контейнер запускается ему надо сказать на каком порте слушать тогда его в одной сети будут видить другие контейнеры
George
а в докер файле что?
Чиста аннотация
George
Ни на что не влияет
Jürgen
Чиста аннотация
ну да тоже самое что в вебе ты говоришь слушай на таком то порту
Jürgen
и екпоз не открывает порт во вне
George
Когда системный вызов на бинд сокета делает
Jürgen
Это приложуха внутри делает
я про то, что если ты не експозишь порт в докере то даже если приложение откроет порт он не будет доступен
Filipp
хороший блин вопрос... я заюзал образ php:7.0, а docker image inspect php:7.0 ничего не выявил
Filipp
expose команде run не указывал, а доступ есть
Jürgen
Точно уверен ?
Allowing Containers to Talk to Each Other Internally Containers on the same network can talk to each other over their exposed ports without having to publish ports back to the Docker host with -p. This is useful for services like Postgres or Redis. These are things you typically wouldn’t want accessible from the internet, but you would want them accessible to your web application containers running on the same Docker network. If that’s the case you’ll need to use EXPOSE or --expose, but… If you check out the official Docker images for Postgres and Redis, you’ll notice they set up EXPOSE 5432 (Postgres) and EXPOSE 6379 (Redis) in their Dockerfile already.
Jürgen
expose команде run не указывал, а доступ есть
да вот не фига покажи из какого имиджа это было запущено))
Filipp
я прикола ради запустил сервер на порту 7777 (предположив вероятность, что его не будет в EXPOSE образа) и все равно есть доступ
Filipp
можно в образе писать EXPOSE * ?))
Filipp
привет всем. давно не копался в докере и походу что-то упустил в изменениях. когда я запускаю контейнер docker run --rm -t -i -v /path/to/project:/var/www php:7.0 bash а затем внутри php -S 0.0.0.0:80 -t /var/www то зная IP контейнера, я могу постучатся на этот сервер с хост машины или даже из другого контейнера (будь он в том же default сети). вопрос: что же тогда делает --expose 80 как опция команде run? что с ней, что без нее - я могу достучатся до сервера.
Filipp
оригинальное сообщение
Filipp
да, просто php:7.0 ща попробую на более конкретном из докерхаба
Petr
http://blog.thelifeofkenneth.com/2018/12/fcix-state-of-exchange.html
Filipp
да кстати у тебя какая корневая ос?))
Убунту 18.04. уже вне офиса :(
Jürgen
Убунту 18.04. уже вне офиса :(
в обще такое как у тебя возможно но если контейнер рутовый тогда он сможет открыть порты без эспоуз, такая хрень в маках)
✙ DarkKC ✙
в обще такое как у тебя возможно но если контейнер рутовый тогда он сможет открыть порты без эспоуз, такая хрень в маках)
у меня такое наблюдалось в контейнерах поднятых под юзверем, не под рутом в убунте порты экспозились внутри докер-сети, не во внешний мир
Jürgen
у меня такое наблюдалось в контейнерах поднятых под юзверем, не под рутом в убунте порты экспозились внутри докер-сети, не во внешний мир
сеть бриджовая? ну и вангую если скажешь ps aux) то увидишь что у тебя приклада запущена на порту)
Jürgen
из корневой ос
✙ DarkKC ✙
Jürgen
неть
да ладно))) не увидишь?
✙ DarkKC ✙
сеть бриджовая? ну и вангую если скажешь ps aux) то увидишь что у тебя приклада запущена на порту)
сеть бриджовая, контейнер без экспоза условного порта 9000, запускаем внутри приложуху слушающую 9000 из соседнего контейнера стучимся в первый:9000 - связь отличная,( пшшш пшшш, йоба приём)
George
из корневой ос
подтверждаю, что из хостовой ос видно процессы из контейнеров
George
но как это поможет парням - хз
✙ DarkKC ✙
процессы видно
George
netstat же пишет белиберду - там обычно docker-proxy висит, который и прокидывает сеть в контейнер (если не хост моуд, и используешь -p)
✙ DarkKC ✙
ты из корневой системы должен видить процессы те что в контейнере)
процессы - да > приклада запущена на порту вот портов чот не видел
✙ DarkKC ✙
наружу через -р смотрит например 80+443 в самом контейнере +1 процесс, слушает 9000 9000 нигде не объявлен из соседнего контейнера 9000 прекрасно доступен
George
наружу паблишь уже порта
наружу - т.е. куда?
✙ DarkKC ✙
наружу паблишь уже порта
я тебе за фому, ты мне за паблиш xD
Jürgen
наружу - т.е. куда?
то есть за нат открытие на фаере
Jürgen
я тебе за фому, ты мне за паблиш xD
паблишь и експос вещи разные
Jürgen
в курсе?
✙ DarkKC ✙
естессна, я о том-же
George
в курсе?
в курсе
Jürgen
естессна, я о том-же
тогда причем тут экполус во внешний мир?
✙ DarkKC ✙
тогда причем тут экполус во внешний мир?
где я написал что он при чём к внешнему миру?
✙ DarkKC ✙
не приписывай мне своих мыслей пожалуйста
✙ DarkKC ✙
я писал о полной доступности хостов друг для друга внутри одной докер-сети, не взирая на экспоуз, небо и аллаха
Jürgen
наружу через -р смотрит например 80+443 в самом контейнере +1 процесс, слушает 9000 9000 нигде не объявлен из соседнего контейнера 9000 прекрасно доступен
Jürgen
-p не экспоус?
✙ DarkKC ✙
EXPOSE и --espose = экспоуз
✙ DarkKC ✙
(по крайней мере в рамках текущего обсуждения)
Jürgen
Я говорил про то что эскпоус не обязательно тебе открывает порт жопой в мир
Jürgen
паблиш открывает порт во внешний мир эспоус открывает порт вообще
✙ DarkKC ✙
ибо технически - да, -p экспоузит порт наружу, а --expose - нет, но мы не о странностях именования параметров и команд докера, мы об --expose говорили тут
✙ DarkKC ✙
Чёрт, кажется меня тролят... пойду поработаю с горя
✙ DarkKC ✙
я это постил выше, сэр
Jürgen
Только что проверил в редхате не могут)