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

时间:2019-04-17 10:23:56

标签: docker

我想检查我的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

要评估容器内是否存在文件夹,我该怎么办?

2 个答案:

答案 0 :(得分:2)

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'"

请特别注意引号。

答案 1 :(得分:2)

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

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

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

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

docker exec -ti <container_name> sh