我有一个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
1条答案
按热度按时间5hcedyr01#
我可以确认,使用相同的docker-compose版本,我能够重现您的问题。
然而,尝试升级到Docker版本20.10.7,构建版本f0 df 350,您的问题似乎已解决