Команда, чтобы сказать, находимся ли мы в докере

Вот как вы правильно извлекаете результат

$param = "%{$_POST['user']}%";
$stmt = $db->prepare("SELECT id,Username FROM users WHERE Username LIKE ?");
$stmt->bind_param("s", $param);
$stmt->execute();
$stmt->bind_result($id,$username);

while ($stmt->fetch()) {
  echo "Id: {$id}, Username: {$username}";
}

, или вы также можете сделать:

$param = "%{$_POST['user']}%";
$stmt = $db->prepare("SELECT id,Username FROM users WHERE Username LIKE ?");
$stmt->bind_param("s", $param);
$stmt->execute();

$result = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_NUM)) {
  foreach ($row as $r) {
    print "$r ";
  }
  print "\n";
}

Надеюсь, вы поняли, что я получил ответ непосредственно из руководства здесь и здесь , где вы должны были пойти первым.

0
задан Joachim W 5 March 2019 в 16:55
поделиться

2 ответа

  • Я полагаю, вы пытаетесь выяснить, выполняется ли ваш скрипт из контекста контейнера Docker ИЛИ изнутри хоста, на котором запущен Docker.
  • Еще один способ взглянуть на это: у вас есть скрипт, который работает, и этот скрипт на самом деле является процессом. И любой данный процесс имеет связанный PID.
  • Возможно, вы захотите узнать, работает ли этот процесс в контейнере Docker или непосредственно в хост-машине.
  • Предположим, что ваш процесс выполняется в контейнере Docker, и мы можем заключить, что процесс Docker является родительским для вашего процесса.
  • Выполнение команды top выведет список всех процессов в машине. Тогда использование другой команды ps -axfo pid,uname,cmd даст полный список процессов
  • Допустим, вы определили идентификатор родительского процесса (например, 2871). Теперь вы можете запустить

docker ps | awk '{ print $1}' | xargs docker inspect -f '{{ .State.Pid }} {{ .Config.Hostname }}' | grep 2871

Используя это, вы можете идентифицировать контейнер, содержащий процесс

  • Если мы запустим pstree, мы сможем обработать процесс Дерево вплоть до процесса загрузки

Предоставлено:

Выяснение, к какому докерному контейнеру относится процесс

как -do-i-get-the-parent-process-id-of-a-данный-child-process

Надеюсь, это поможет

0
ответ дан a3.14_Infinity 5 March 2019 в 16:55
поделиться

Если вы оказались в контейнере, вы должны выполнить команду для входа в этот контейнер.

Если вы забыли, где находитесь, введите docker ps. Если это не удается, вы находитесь в док-контейнере.

Редактировать:

Очевидно, этот простой трюк не работает, когда вы запускаете Docker в Docker.

0
ответ дан Zak 5 March 2019 в 16:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: