Когда я запускаю из bash docker run --detach , я получаю сообщение на хосте.
Когда я звоню
Код: Выделить всё
std::future process_stderr, process_stdout;
std::list arguments{"-c", "run --detach "};
int error = boost::process::system(boost::process::exe = "/usr/bin/bash",
boost::process::args = arguments,
boost::process::std_out > process_stdout,
boost::process::std_err > process_stderr);
Но когда я звоню
Код: Выделить всё
std::future process_stderr, process_stdout;
std::list arguments{"run", "--detach", ""};
int error = boost::process::system(boost::process::exe = "/usr/bin/docker",
boost::process::args = arguments,
boost::process::std_out > process_stdout,
boost::process::std_err > process_stderr);
Согласно документации по сетевым режимам Docker, это не должно (и изнутри bash нет) необходимости:
Контейнеры имеют сетевое взаимодействие по умолчанию, и они могут устанавливать исходящие соединения.
Контейнеры, подключенные к мост по умолчанию имеет доступ к сетевым службам за пределами хоста Docker.
Сеть моста Docker имеет подсеть IPv4 и, при необходимости, подсеть IPv6. [...] По умолчанию он [разрешает] неограниченный сетевой доступ к контейнерам в сети с хоста[.]
- Откуда такое различное поведение?
- (Как) я могу назвать это «правильно», не обертывая его в bash?
- Ubuntu 22
- libboost 1.74
- GNU bash 5.1.16
- Docker 28.2.2
Подробнее здесь: https://stackoverflow.com/questions/799 ... n-function
Мобильная версия