Как получить путь проекта с помощью Докера?

У меня есть машина Ubuntu, на которой я установил свои паруса js (узел js) проект. Я использую Докера на машине Ubuntu. Но к сожалению я не могу найти местоположение проекта. Поскольку это использует Докера, мы не можем получить точный каталог проекта.

Я пытался использовать следующую команду

sudo find . -name "*local.js*"

Это показывает мне что файл в каталоге Docker. Но существует много папок, запускающихся с некоторого случайного алфавитно-цифрового текста. Все эти папки, содержащие папку моего проекта, но я смущен, которой папки я могу получить свой последний код.

Кто-либо может помочь мне определить местоположение структуры каталогов для своего проекта?

1
задан 11 September 2018 в 17:37

1 ответ

Контакт с каталогами "блобов" в/var/lib/docker чреват опасностью.

Для наблюдения содержания контейнера докера лучший способ состоит в том, чтобы выполнить оболочку в нем (если изображение докера содержит исполняемую оболочку):

docker run --rm -it --entrypoint /bin/sh <your_image>

Если контейнер уже работает, можно вместо этого сделать:

docker exec -it --entrypoint /bin/sh <your_image>

Затем у Вас есть интерактивная оболочка, работающая в контейнере, и можно использовать его для исследования файлов (ls, кошка, и т.д....)

Помните также, что можно получить контейнерное изображение для создания другого изображения, в котором Вы добавляете другие команды (или объявите, что объемы копируют вещи вне контейнера для контроля).

Если Вы хотите осмотреть контейнерную файловую систему на своем досуге, можно экспортировать все как a.tar:

docker export -o <the_output.tar> <container_name_or_id>

Но результат может быть громоздким, если Вы запускаете с большого изображения (Ubuntu, Centos...)

Для чего-то меньшего Вы просто работаете tar в контейнере с его выводом к stdout и перенаправлении (вне контейнера) вывод в файл TAR:

docker run --rm --entrypoint "" container/image tar -c /the/directory >dump_of_the_directory.tar

В slo-mo:

  • run: запустите контейнер
  • --rm: очистка
  • --entrypoint "": сбросьте точку входа к оболочке по умолчанию (полезный, если контейнер определяет свою точку входа для запуска Среды выполнения Java, например
  • container/image: название изображения для запуска
  • tar -c /the/directory попросите, чтобы контейнер СМОЛИЛ каталог интереса для его стандартного вывода (нет -f). Вывод контейнера является поэтому содержанием TAR
  • >dump_of_the_directory.tar: получите этот stdout в хосте и переместите ot в файл TAR

Можно использовать подобную технику на рабочем контейнере с docker exec вместо docker run.

1
ответ дан 7 December 2019 в 15:14

Другие вопросы по тегам:

Похожие вопросы: