Есть ли способ общаться между контейнерами докеров, кроме как через сокеты / сеть? Может быть, это может быть IPC или другое средство. Насколько это возможно?
Я прочитал документацию по докерам, в которой говорится, что мы можем связывать контейнеры докеров с помощью параметра --link, но не уточняется, как передавать данные / сообщение из одного контейнера в другой. Я уже создал контейнер с именем checkram. Теперь я хочу связать новый контейнер с этим контейнером и запускаю docker run -i -t --privileged --link=checkram:linkcheck --name linkcont topimg
команда. Затем я проверил переменную env LINKCHECK_PORT
в контейнере linkcont, который содержит tcp://172.17.0.14:22
. Я не знаю, что делать с этим ip и портом и как общаться с контейнером checkram из контейнера linkcont. кто-нибудь может мне помочь? Заранее спасибо.
В --link
Опция позволяет контейнерам на одном компьютере находить друг друга, учитывая, что IP-адреса назначаются динамически, а порты могут быть повторно сопоставлены. Однако все дело в связи через сокеты. Идея состоит в том, что вы будете запускать программу в одном контейнере, прослушивающем сокет, и вы будете запускать другую программу в другом контейнере, которая будет подключаться к первому сокету.
Docker (и контейнеры linux в целом) предназначены для изоляции одного объекта от другого, поэтому механизмы IPC, такие как общая память, недоступны.