我想检查我的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
要评估容器内是否存在文件夹,我该怎么办?
答案 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