【问题标题】:ls command result NOT CORRECT in docker container in a CIFS mounted directory (via docker-compose)ls 命令结果在 CIFS 挂载目录中的 docker 容器中不正确(通过 docker-compose)
【发布时间】:2021-05-07 11:28:48
【问题描述】:

我有一个 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 容器中使用“docker exec -it -uroot myservice sh”和 cd on /opt/data 打开一个 shell,我可以正确列出(“ls”)共享 CIFS 中的所有文件,但前提是文件数为小。

例如,如果我将 355 个文件放入共享文件系统(例如来自 Windows 系统),我只会看到 ls 命令列出的 351 个文件(如果我运行“ls -1 | wc -l”或“ls - ls") 从 docker 容器内部(在 "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 个文件

码头工人版本:

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

【问题讨论】:

    标签: linux docker-compose ls cifs


    【解决方案1】:

    我可以确认,使用相同的 docker-compose 版本,我能够重现您的问题。

    尽管尝试升级到 Docker 版本 20.10.7,构建 f0df350,您的问题似乎已解决

    【讨论】:

      猜你喜欢
      • 2015-03-15
      • 1970-01-01
      • 2019-09-04
      • 2015-11-11
      • 2019-08-07
      • 2018-05-31
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多