Как в Cloud Dataflow проверить контейнер Docker, в котором работает рабочий процесс?

Как получить доступ оболочки к контейнеру Docker, в котором работает рабочий поток данных?

Как упоминалось в комментариях к этому вопросу , мы можем установить teardownPolicy=TEARDOWN_NEVER, чтобы сохранить рабочую виртуальную машину после завершения конвейера. Это позволяет нам подключаться по SSH к хост-ВМ, но не вставляет нас в контейнер Docker, в котором выполняются рабочие задачи. Как получить доступ оболочки к этому контейнеру?

Контекст: я хотел бы использовать контейнер Docker внутри моего рабочего процесса, но двоичный файл docker не доступен внутри рабочего контейнера. Я пытался установить Docker в контейнере, но получаю ошибки, и запуск нового конвейера только для проверки следующей команды происходит медленно.


person emchristiansen    schedule 02.02.2015    source источник


Ответы (1)


Докер не установлен внутри рабочего контейнера.

В настоящее время в Dataflow не так много поддержки для запуска контейнеров Docker из вашего воркера.

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

# List containers and their IDs
docker ps -notrunc
# Grab the process id of the container
PID=$(docker inspect --format '{{.State.Pid}}' my_container_id)
# Get an interactive shell on the container
nsenter --target $PID --mount --uts --ipc --net --pid
person Jeremy Lewi    schedule 02.02.2015