Виртуальная машина Google Cloud Изображение в образ докера - PullRequest
0 голосов
/ 19 октября 2019

У меня есть виртуальная машина Google Cloud, установленная вместе с моим приложением. Шаг установки завершен, и я:

  1. Выключил экземпляр виртуальной машины.
  2. Экспортировал диск в образ диска с именем MY_CUSTOM_IMAGE_1

Теперь я хочу использовать MY_CUSTOM_IMAGE_1 в качестве исходного образа моей сборки образа докера. Для построения изображений я использую Google Cloud Build.

Мой файл Docker должен выглядеть следующим образом:

FROM MY_CUSTOM_IMAGE_1 AS BUILD_ENV
...

Когда я попытался использовать этот образ, я получил ошибку сборки:

ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: exit status 1
ERROR
pull access denied for MY_CUSTOM_IMAGE_1, repository does not exist or may require 'docker login'
Step 1/43 : FROM MY_CUSTOM_IMAGE_1 AS BUILD_ENV

Причина в том, что VMизображения не совпадают с изображениями Docker.

Возможно ли сделать это преобразование (образ виртуальной машины GCP -> образ Docker) без внешних инструментов (за пределами GCP, например, «частные репозитории docker»)?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 19 октября 2019

Если вы знаете все, что установлено на вашей виртуальной машине (и все команды), сделайте то же самое в Dokerfile. Используйте в качестве базового образа ту же версию ОС, что и текущая виртуальная машина. Выполните несколько тестов, и это должно быть быстро эквивалентно.

Если у вас есть файлы statefull в приложении VM, это немного сложнее, вам нужно смонтировать диск в вашем контейнере и обновить конфигурацию приложения, чтобы записатьв правильной смонтированной папке. Это более «сложно», но в Интернете есть множество примеров!

1 голос
/ 19 октября 2019

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

Существует большая разница между образом контейнера и образом виртуальной машины. Образы контейнеров не имеют операционной системы, образы виртуальных машин представляют собой полные данные операционной системы и устройства. Эти два концептуально похожи, но чрезвычайно отличаются в том, как они реализованы на программном и аппаратном уровне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...