У меня есть контейнер Docker, который выполняет одно большое вычисление.Это вычисление требует много памяти и занимает около 12 часов.
Я могу создать виртуальную машину Google Compute Engine соответствующего размера и использовать опцию «Развернуть образ контейнера на этом экземпляре виртуальной машины» для запуска этого задания.в совершенстве.Однако, как только задание завершено, контейнер закрывается, но виртуальная машина все еще работает (и заряжается).
Как заставить ВМ выйти / остановить / удалить при выходе из контейнера?
КогдаВиртуальная машина находится в режиме зомби, работают только контейнеры стековых драйверов:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bfa2feb03180 gcr.io/stackdriver-agents/stackdriver-logging-agent:0.2-1.5.33-1-1 "/entrypoint.sh /u..." 17 hours ago Up 17 hours stackdriver-logging-agent
161439a487c2 gcr.io/stackdriver-agents/stackdriver-metadata-agent:0.2-0.0.17-2 "/bin/sh -c /opt/s..." 17 hours ago Up 17 hours 8000/tcp stackdriver-metadata-agent
Я создаю виртуальную машину следующим образом:
gcloud beta compute --project=abc instances create-with-container vm-name \
--zone=us-central1-c --machine-type=custom-1-65536-ext \
--network=default --network-tier=PREMIUM --metadata=google-logging-enabled=true \
--maintenance-policy=MIGRATE \
--service-account=xyz \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--image=cos-stable-69-10895-71-0 --image-project=cos-cloud --boot-disk-size=10GB \
--boot-disk-type=pd-standard --boot-disk-device-name=vm-name \
--container-image=gcr.io/abc/my-image --container-restart-policy=on-failure \
--container-command=python3 \
--container-arg="a" --container-arg="b" --container-arg="c" \
--labels=container-vm=cos-stable-69-10895-71-0