Почему я могу выполнить `docker cp `, но не могу выполнить `docker ls `?

Недавно я отвечал на очень похожий вопрос, заданный в Ask. Убунту :https://askubuntu.com/questions/1175757/how-can-i-save-a-part-of-command-lines-into-a-new-file-using-history-command/1175763#1175763

Необходимо использовать -aвместе с именем файла. Как поясняется вhelp history:

history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]

(...)

-a append history lines from this session to the history file

И далее:

If FILENAME is given, it is used as the history file. Otherwise, if $HISTFILE has a value, that is used, else ~/.bash_history.

Например, запустите новый сеанс и введите это($— это приглашение, скорее всего, в вашей системе оно будет другим):

$ echo a-new-session started at $(date)
$ history -a /tmp/new-history

В этом случае /tmp/new-historyбудет:

echo a-new-session started at $(date)
history -a /tmp/new-history

0
17.01.2021, 22:04
1 ответ

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

docker exec c7033ac0fdd2 ls /home/mydir

Что касается «почему?», существует ограничение на то, сколько должно быть встроено в докер и сколько вы должны делать с внешними программами.

Если предположения неверны, вы можете экспортировать содержимое контейнера в виде tar-файла и посмотреть на него, например.

docker container export c7033ac0fdd2 | tar vtf - | grep /home/mydir
3
18.03.2021, 22:36

Теги

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