# cannot access '/docker-entrypoint-initdb.d/': Operation not permitted错误 如果提示`ls: cannot access '/docker-entrypoint-initdb.d/': Operation not permitted` 原因是CentOS7中的安全模块`selinux`把权限禁掉了 ## 解决方法 在运行容器的时候,给容器加特权,及加上 `--privileged=true` ## 参数解释 ```bash privileged: # 用来给容器root权限,不安全的 environment: # 设置容器中的环境变量 volumes : # 用来存储docker持久化的数据,启动tomcat容器后,读取的是主机目录中的文件包 network_mode: # 设置容器的网络模式,下面是几种网络模式,有需要的可以自行查找资料 host: # 容器环境不隔离,将使用主机的端口和ip,不能与ports 端口映射同时使用 bridge overlay Macvlan ``` ## docker-compose.yml中的使用 ```bash tomcat: restart: always image: tomcat:latest container_name: tomcat network_mode: host # 设置网络模式为host模式 volumes: - ~/java:/usr/local/tomcat/webapps/ # 将主机中的~/java/ 目录挂载到容器中tomcat存放war包的目录 environment: LOGONAME: tomcat # 设置tomcat中的环境变量 privileged: true # 设置容器的权限为root ``` ## 快照 - https://i.788910.xyz/t/25/12/TYyx0a88Rm.png - https://i3.wp.com/i.788910.xyz/t/25/12/TYyx0a88Rm.png - https://788910.xyz/api/snapshot?p=c11af029004630c7f9151190df8084e9&u=https://i.788910.xyz/t/25/12/TYyx0a88Rm.png