У меня есть машина Ubuntu, на которой я установил свои паруса js (узел js) проект. Я использую Докера на машине Ubuntu. Но к сожалению я не могу найти местоположение проекта. Поскольку это использует Докера, мы не можем получить точный каталог проекта.
Я пытался использовать следующую команду
sudo find . -name "*local.js*"
Это показывает мне что файл в каталоге Docker. Но существует много папок, запускающихся с некоторого случайного алфавитно-цифрового текста. Все эти папки, содержащие папку моего проекта, но я смущен, которой папки я могу получить свой последний код.
Кто-либо может помочь мне определить местоположение структуры каталогов для своего проекта?
Контакт с каталогами "блобов" в/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
.