Я следил за учебными пособиями и пару дней экспериментировал с Docker, но не могу найти ни одного примера использования «реального мира».
Как я могу общаться с моим контейнером извне?
Все примеры, которые я могу найти, заканчиваются одним или несколькими контейнерами, они могут совместно использовать порты со своими другими, но никто за пределами хоста не получает доступ к их открытым портам.
Разве весь смысл таких контейнеров не в том, что по крайней мере 1 из них должен быть доступен снаружи?
Я нашел инструмент под названием pipework (https://github.com/jpetazzo/pipework), который, вероятно, помогите мне с этим. Но тот ли это инструмент, который все тестируют Docker для производства, который они используют?
Нужен ли «хак», чтобы снаружи поговорить с моим контейнером?
EXPOSE
неверна.EXPOSE 80 8080
предоставляет два порта, 80 и 8080, из контейнера. Это не управляет портами, где они выставлены на хосте. Только оператор (== лицо, выполняющееdocker run
) может решить, как сопоставить порты с хостом, но не разработчик (== кто выполняетdocker build
). Используйтеdocker port
илиdocker ps
, чтобы увидеть сопоставление хоста с портами контейнера. 04.02.2014