Как смонтировать Docker-контейнер, чтобы я мог запускать скрипты Python, которые хранятся внутри контейнера - PullRequest
0 голосов
/ 20 января 2019

Я использую образ докера (не мой), созданный с помощью этого файла докерства .

ROS kinetic, ROS2 и некоторые важные пакеты уже установлены в этом образе. Когда я запускаю образ докера с docker run -it <image-hash-code> ROS кинетика работает хорошо, и пакеты, такие как gym, могут быть найдены python3. Итак, в целом образ докера - отличная отправная точка для моего собственного проекта.

Однако я хотел бы изменить сценарии Python, которые хранятся в образе докера. Скрипты python используют установленные пакеты и взаимодействуют как с ROS кинетической, так и с ROS2.

Я не хочу устанавливать в свою систему Ubuntu все эти программы и пакеты, которые уже установлены в образе докера, для тестирования моих собственных сценариев Python.

Есть ли способ смонтировать образ докера, чтобы я мог протестировать свои скрипты на python? Конечно, я могу использовать vim для редактирования скриптов на python, но я больше думаю о IntelliJ.

Итак, как IDE (например, IntelliJ) может получить доступ и запустить скрипт python, который хранится в образе докера, с тем же результатом, что и я, выполняя этот скрипт непосредственно в работающем контейнере.

Метод лорда Джохара, монтирующий докер, редактирует сценарии с помощью IDE, сохраняет изображение, а затем запускает образ, работает, но это не то, чего я хотел бы достичь.

Моя цель - использовать Docker-контейнер в качестве среды разработки, в которой IDE имеет доступ и может использовать установленные программы и пакеты.

Другими словами: я хотел бы использовать IDE в моей хост-системе для тестирования моих сценариев Python так же, как IDE будет установлен на образ докера.

Ответы [ 2 ]

0 голосов
/ 20 января 2019

Однако я бы хотел изменить сценарии Python, которые хранятся в образе докера. Скрипты python используют установленные пакеты и взаимодействуют как с ROS кинетической, так и с ROS2.

  1. Вы должны смонтировать том в докер и отредактировать файл.
  2. лучший способ сделать свой имидж установите docker на вашу Ubuntu, извлеките образ Python, используйте Dockerfile для создания своего образа, каждый раз, когда вы меняете код, создавайте новый образ с помощью нового тега, затем запускайте образ и наслаждайтесь контейнером Docker

Вторым способом

  1. Скопируйте ваше приложение на python в / path / to / your / app (мой основной файл index.py)
  2. Измените каталог на / path / на / your / app
  3. Создать файл с именем Dockerfile:

    FROM python:alpine3.7
    COPY . /app
    WORKDIR /app
    RUN pip install -r requirements.txt
    EXPOSE 5000
    CMD python ./index.py
    

    Также обратите внимание на директиву RUN, которая вызывает PyPi (pip) и указывает на файл needs.txt. Этот файл содержит список зависимостей, необходимых для запуска приложения.

  4. Создайте свой имидж.

    docker build --tag my-app .
    

    Примечание: в конце команды есть точка, которая слишком важна. Другое дело, что вы должны быть в / path / to / your / app внутри Dockerfile

  5. теперь вы можете запустить свой контейнер

    docker run --name python-app -p 5000:5000 my-app
    
0 голосов
/ 20 января 2019

вы можете использовать docker commit

  1. используйте эту команду docker commit <your python container>.
  2. Теперь наберите docker images, чтобы увидеть изображение.
  3. Вы должны переименовать и пометить изображение, как эта команда docker tag myphthon:v1 <image ID>
  4. используйте команду docker run и наслаждайтесь вашим кодом. Лучше смонтировать том в свой контейнер, чтобы сохранить ваш код и данные Том Docker .
...