В настоящее время я использую много подобных Docker-контейнеров, которые создаются и запускаются скриптом Python через официальный API. Поскольку Docker изначально не поддерживает сопоставление GPU, я протестировал Nvidia-Docker, который удовлетворяет моим требованиям, но я не уверен, как легко интегрировать его в мой скрипт.
Я пытался найти правильные вызовы API для Nvidia-Docker, используя Google и документы, но мне не удалось найти ничего полезного.
Мой текущий код выглядит примерно так:
# assemble a new container using the params obtained earlier
container_id = client.create_container(img_id, command=commands, stdin_open=True, tty=True, volumes=[folder], host_config=client.create_host_config(binds=[mountpoint,]),detach=False)
# run it
client.start(container_id)
Документацию по API можно найти здесь .
Из Nvidia-Dockers Github Страница:
Среда выполнения по умолчанию, используемая движком Docker®, -
runc, наша среда выполнения может стать стандартной по умолчанию, настроив докер
демон с --default-runtime = nvidia. Это избавит от необходимости
добавьте аргумент --runtime = nvidia для запуска Docker. Это также единственный
способ получить доступ к графическому процессору во время сборки докера.
По сути, я хочу добавить аргумент --runtime = nvidia-docker к моему вызову create_container, но, как кажется, его поддержка не поддерживается.
Но так как мне нужно переключаться между средами выполнения несколько раз во время выполнения скрипта (смешивая Nvidia-Docker и нативные контейнеры Docker), быстрый и грязный способ состоял бы в том, чтобы запустить команду bash с использованием подпроцесса , но я чувствую как должен быть лучший способ.
TL; DR: я ищу способ запуска контейнеров Nvidia-Docker из скрипта Python.