为什么我可以执行“docker cp”,但不能执行“docker ls”?

为什么我可以执行“docker cp”,但不能执行“docker ls”?

如果我做

$ sudo docker cp c7033ac0fdd2:/home/mydir/myfile.txt .

文件被复制。但如果我这样做

$ sudo docker ls c7033ac0fdd2:/home/mydir/
docker: 'ls' is not a docker command.
See 'docker --help'

那么如何列出目录内容以及为什么它不使用 with 制作ls

答案1

假设一些合理的事情(有一个 shell 和一个 ls 程序,并且容器的入口点没有被严格锁定)

docker exec c7033ac0fdd2 ls /home/mydir

至于“为什么?”,应该在 docker 中构建多少内容以及应该使用外部程序做多少事情是有限制的。

如果假设无效,那么您可以将容器的内容导出为 tar 文件并查看,例如

docker container export c7033ac0fdd2 | tar vtf - | grep /home/mydir

相关内容