Вся история:
Обычно я использую docker ps
, чтобы проверить состояние контейнера, чтобы увидеть, есть ли перезапуск контейнера.
Недавно я установил одну гипер-v машина в windows10, также установите Ubuntu18.04 на эту машину hyper-v. Тем временем я устанавливаю docker в эту ubuntu18.04.
Я добавляю некоторые контейнеры в эту ubuntu18.04, затем я непосредственно выключаю компьютер с windows10 перед тем, как идти спать.
Позже, когда яВспомните эту вещь снова. Я запустил win10 pc, ssh на эту виртуальную машину и сделал следующее:
cake@cake:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0ac07c24c537 wordpress "docker-entrypoint.s…" 5 days ago Up 5 days 0.0.0.0:8080->80/tcp gg_wordpress_1
3c47669c927f mysql:5.7 "docker-entrypoint.s…" 5 days ago Up 5 days 3306/tcp, 33060/tcp gg_db_1
Проблема:
Вы можете увидеть созданные контейнеры за 5 днейназад, что нормально, но STATUS
показало, что контейнеры уже работают в течение 5 дней.
Я уверен, что я закрыл windows10 pc в течение этих 5 дней, тем временем после поиска выше, я также перепутал win10проверить, можно ли получить доступ к 8080
одной контейнерной службы? (Результат уверен, что к ней нельзя получить доступ). Затем я перезагружаю ПК win10, снова выполняю docker ps
, я полагаю, что STATUS
- это что-то вроде 1 second ago
, но все же 5 days ago
.
ПРИМЕЧАНИЕ: не предлагатьdocker for windows with MobyLinuxVM in hyperv
, я просто хочу знать, почему возникла моя проблема.
ОБНОВЛЕНИЕ:
Как я уже сказал в комментариях:
ЕслиВыполните uptime
в Bash, он покажет: 20:57:41 up 1 day, 2:23, 1 user, load average: 0.00, 0.00, 0.00
Я могу объяснить это одной ситуацией: приостановить гипер-v. Это заставит виртуальную машину остановиться, пока uptime
перестанет считать, но docker ps
все равно не прекратит считать, он просто посчитает в реальном времени. Не знаю почему.
Итак, моя ситуация может быть следующей:
a) 5 дней назад я запускаю контейнеры.
b) 4 дня назад я делаю паузуVM (не уверен, может быть, другая операция аналогична)
c) Просто сейчас для некоторых операций не уверен, что VM приостановлена.
d) Тогда я мог бы с uptime
увидеть VMначать с 1 дня;но с docker ps
все еще вижу контейнер в течение 5 дней.
e) В течение этих пяти дней я определенно не выключал ВМ;Я просто не один раз отключил физическую машину windows10. Но это, кажется, не влияет на счетчик времени для виртуальной машины Linux.
Таким образом, кажется, что прямое выключение машины win10 не влияет на счетчик времени виртуальной машины hyper-v linux.
Другое слово: если попропустите паузу ВМ, если мы напрямую выключим win10. Затем, хотя служба в Hyper-V VM также прерывается, но когда Linux win10 и hyper-v VM возвращаются обратно, виртуальная машина ведет себя как никогда и не останавливается, uptime
также счетчик в течение периода остановки Hyper-V VM. Кажется, теперь сузьте мою проблему до этого поведения hyper-v.
Кто-нибудь может объяснить это поведение hyper-v?