Docker无法从主机的SAN读取

问题描述 投票:0回答:1

所以我在3个不同的Docker主机上部署了一个tomcat应用程序容器(相同的docker compose / dockerfile)。所有这些主机共享安装在/ var / opt / data / flat / APP / files上的SAN逻辑卷。我的容器需要能够读取或写入此SAN。但是只有我的第一个docker容器能够毫无问题地完成它。我的3个实例之间可能有什么不同,它使第一个工作,而不是另外三个工作。我可能在我的第一台主机而不是其他主机上有所改变?直到今天,我还无法弄清楚是什么。

Docker撰写提取物:

  volumes:
      - /var/opt/data/flat/APP/log:/var/opt/data/flat/APP/log:Z
      - /var/opt/data/flat/APP/files:/var/opt/data/flat/APP/files

从3台主机,权限是相同的,我没有遇到读/写问题:

[app]$ ls -al /var/opt/data/flat/APP
drwxrwxrwx. 3 app  app  1024 Apr  9 16:05 conf
drwxrwxrwx. 6 app  app  4096 Apr 10 13:45 files
drwxrwxrwx. 2 app  app  4096 Mar 29 14:09 log
drwxrwxrwx. 2 app  app  1024 Mar 18 11:48 scripts

从3个容器:

root@38033790df5d:/var/opt/data/flat/APP# ls -al /var/opt/data/flat/APP
total 8
drwxr-xr-x. 4 root   root      30 Apr  9 15:12 .
drwxr-xr-x. 3 root   root      17 Apr  9 15:12 ..
drwxrwxrwx. 6 nobody nogroup 4096 Apr 10 11:45 files
drwxrwxrwx. 2 nobody nogroup 4096 Mar 29 13:09 log

我在容器#2和容器#3上遇到错误:

root@9c8027865360:/var/opt/data/flat/APP# ls files
ls: cannot open directory 'files': Permission denied

但是,我的所有容器似乎都能够在日志文件夹中写入日志而没有任何问题。

3台主机上/etc/docker/daemon.json的内容:

{"userns-remap": "default"}
docker unix tomcat rhel
1个回答
0
投票

解决了,SELinux在第一个VM上设置为允许,并在其他VM上强制执行。所以我完全禁用它在每个主机上。

我相应地更新了我的撰写文件:

volumes:
      - /var/opt/data/flat/APP/log:/var/opt/data/flat/APP/log:Z
      - /var/opt/data/flat/APP/files:/var/opt/data/flat/APP/files:z
© www.soinside.com 2019 - 2024. All rights reserved.