linux ls命令结果NOT CORRECT(在CIFS装载目录中的docker容器中不正确)(通过docker-compose)

3lxsmp7m  于 2023-04-11  发布在  Linux
关注(0)|答案(1)|浏览(138)

我有一个docker-compose项目,它启动了一个在容器目录上挂载CIFS共享的服务。以下是docker-compose.yml的一部分:

version: "2"
...
services:
   myservice:
   ...
      volumes:
        - wr-imp:/opt/data
...
volumes:
  wr-imp:
    driver: local
    driver_opts:
       type: cifs
       device: "//192.168.131.18/"
       o: "addr=192.168.131.18,rw"
       o: "username=abc,password=cba,domain=DOMINIO,file_mode=0777,dir_mode=0777"

Docker的基本镜像是Alpine 3.9:https://dl-cdn.alpinelinux.org/alpine/v3.9/
docker容器myservice正确启动,一切似乎正常。如果我在docker容器中打开一个shell,并使用“docker exec -it -uroot myservice sh“和cd on /opt/data,我可以正确列出(“ls”)共享CIFS中的所有文件,但只有在文件数量很小的情况下。
例如,如果我将355个文件放在共享文件系统中(例如,来自Windows系统),则使用ls命令只会看到351个文件(如果运行“ls -1”,则会看到相同的计数|wc -l”或“ls -ls”)(在“docker exec -uroot -it myservice sh”和“cd /opt/data”命令之后)
如果我使用/etc/fstab在docker主机(Red Hat 7.6 Maippo发行版)上挂载CIFS:

//192.168.131.18   /DataTest     cifs  vers=1.0,username=abc,password=cba,domain=DOMINIO    0 0

如果我运行命令“ls”或“ls -la“或“ls -1|wc -l”我看到355个文件。
这不是许可问题,因为

  • 共享CIFS目录中的所有文件都相同
  • 如果我从容器内部打开一个隐藏的文件,它会定期打开(例如使用vi)
  • 如果我删除所有文件从共享目录从容器内使用“rm *”命令后,我运行“ls”我看到4个文件以前隐藏

docker版本:

Client: 
   Version:           1.13.1
   API version:       1.26
   Package version:   docker-1.13.1-109.gitcccb291.e17_7.x86_64
   Go version:        go1.10.3
   Git commit:        cccb291/1.13.1
   Built:             Thu Jan 30 06:20:45 2020
   OS/Arch:           linux/amd64
Server:
   Version:          1.13.1
   API version:      1.26 (minimum version 1.12)
   Package version:  docker-1.13.1-109.gitcccb291.e17_7.x86_64
   Go version:       go1.10.3
   Git commit:       cccb291/1.13.1
   Built:            Thu Jan 30 06:20:45 2020
   OS/Arch:          linux/amd64
   Experimental:     false

docker-compose版本:

docker-compose version 1.24.1, build 4667896b
docker-py version 3.7.3
CPython version 3.6.8
OpenSSL version: OpenSSL 1.1.0j 20 Nov 2018
5hcedyr0

5hcedyr01#

我可以确认,使用相同的docker-compose版本,我能够重现您的问题。
然而,尝试升级到Docker版本20.10.7,构建版本f0 df 350,您的问题似乎已解决

相关问题