如何从主机检查docker容器中是否存在文件夹

问题描述 投票:1回答:2

我想检查我的docker容器中是否存在名为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

如何评估容器内是否存在文件夹,我该怎么做?

docker
2个回答
3
投票

test命令不输出任何内容。如果测试成功,它只返回0(true),如果不成功则返回1(false)。

如果需要输出,则需要链接第二个命令。例如

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

要在容器中执行此操作,您需要使用shell:

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

请注意引号。


2
投票

test不提供您必须检查退出代码的输出。

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

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

如果您想“探索”您的容器,请打开一个交互式会话。

docker exec -ti <container_name> sh
© www.soinside.com 2019 - 2024. All rights reserved.