![为什么我可以执行“docker cp”,但不能执行“docker ls”?](https://linux22.com/image/186507/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%8F%AF%E4%BB%A5%E6%89%A7%E8%A1%8C%E2%80%9Cdocker%20cp%E2%80%9D%EF%BC%8C%E4%BD%86%E4%B8%8D%E8%83%BD%E6%89%A7%E8%A1%8C%E2%80%9Cdocker%20ls%E2%80%9D%EF%BC%9F.png)
如果我做
$ 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