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

Dan*_*iel 3 docker

我想检查我的 docker 容器中是否存在一个名为mysqlserver. 容器是一台 Linux 机器。

以下命令正在运行:

# both commands print the current working directory
docker exec -it mysqlserver pwd
# output: /
docker exec -it mysqlserver 'pwd'
# output: /
Run Code Online (Sandbox Code Playgroud)

所以我假设我可以检查文件夹的存在,如:

docker exec -it mysqlserver test -d /var
# output: nothing
Run Code Online (Sandbox Code Playgroud)

即使是不存在的文件夹也不会输出任何内容:

docker exec -it mysqlserver test -d /var
# output: nothing
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能评估容器内是否存在文件夹?

Jon*_*art 8

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

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

test -d /var/some/dir && echo 'It Exists'
Run Code Online (Sandbox Code Playgroud)

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

docker exec -it mysqlserver sh -c "test -d /var/some/dir && echo 'It Exists'"
Run Code Online (Sandbox Code Playgroud)

请仔细注意引号。