Как проверить, существует ли папка в контейнере Docker с хоста - PullRequest
1 голос
/ 17 апреля 2019

Я хочу проверить, существует ли папка в моем док-контейнере с именем mysqlserver.Контейнер является машиной Linux.

работает следующая команда:

# both commands print the current working directory
docker exec -it mysqlserver pwd
# output: /
docker exec -it mysqlserver 'pwd'
# output: /

, поэтому я предполагал, что могу проверить наличие такой папки, как:

docker exec -it mysqlserver test -d /var
# output: nothing

даже папка, которая не существует, ничего не выводит:

docker exec -it mysqlserver test -d /var
# output: nothing

Что мне нужно сделать, чтобы оценить, существует ли папка внутри контейнера?

Ответы [ 2 ]

3 голосов
/ 17 апреля 2019

Команда test ничего не выводит. Он просто возвращает 0 (true), если проверка прошла успешно, или 1 (false), если это не так.

Если вам требуется вывод, вам нужно соединить вторую команду. * Например 1004 *

test -d /var/some/dir && echo 'It Exists'

Для этого в контейнере вам нужно использовать оболочку:

docker exec -it mysqlserver sh -c "test -d /var/some/dir && echo 'It Exists'"

Обратите особое внимание на цитаты.

2 голосов
/ 17 апреля 2019

test не обеспечивает вывод, вы должны проверить код выхода.

$ test -d /var
$ echo $?
0 -> Exists

$ test -d /hello_world
$ echo $?
1 -> Doesn't exist

Если вы хотите «исследовать» свой контейнер, откройте для него интерактивный сеанс.

docker exec -ti <container_name> sh
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...