исполняемый файл .exe внутри среды выполнения контейнера без генерации dockerfile

#docker

#docker

Вопрос:

Я хотел знать, возможно ли запустить исполняемый файл, т.Е. файл .exe, внутри среды выполнения контейнера без создания файла dockerfile. Я знаю, что это можно сделать с помощью dockerfile, используя следующее

   FROM ubuntu
    MAINTAINER me@gmail.com
    COPY name.exe /bin/
    CMD ["/bin/name.exe", "input1", "output"]
  

но я не хочу создавать dockerfile и запускать .exe внутри контейнера. пожалуйста, помогите мне в этом.

Ответ №1:

Это невозможно, причина в том, что такое docker. Это приложение для контейнеризации.

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

По сути, контейнер — это не что иное, как запущенный процесс, к которому применяются некоторые дополнительные функции инкапсуляции, чтобы сохранить его изолированным от хоста и от других контейнеров. Одним из наиболее важных аспектов изоляции контейнера является то, что каждый контейнер взаимодействует со своей собственной файловой системой; эта файловая система предоставляется образом Docker. Образ включает в себя все необходимое для запуска приложения — код или двоичный файл, время выполнения, зависимости и любые другие требуемые объекты файловой системы.

Таким образом, если docker позволяет запускать исполняемый файл или любой файл приложения (jar, war и т.д.) Без файла docker, это принципиально противоречит цели использования docker. Это очень похоже на запуск виртуальной машины или приложения непосредственно на вашем хост-компьютере.

Комментарии:

1. Я новичок в docker и пытаюсь это понять. В моем приложении мне нужно запускать исполняемый файл в контейнере каждый раз, когда он запрашивается. итак, хорошая ли идея сгенерировать dockerfile в системе, а затем передать его в docker?

2. Действительно, возможно создать контейнер docker и запустить его «на лету» с помощью сценария оболочки, выполнить задание и снова остановить экземпляр.

3. не могли бы вы поделиться каким-либо руководством или примером

4. Вы можете попробовать что-то вроде этого unix.stackexchange.com/questions/500695 /…