cannot access '/docker-entrypoint-initdb.d/': Operation not permitted错误

cannot access '/docker-entrypoint-initdb.d/': Operation not permitted错误

如果提示ls: cannot access '/docker-entrypoint-initdb.d/': Operation not permitted 原因是CentOS7中的安全模块selinux把权限禁掉了

解决方法

在运行容器的时候,给容器加特权,及加上 --privileged=true

参数解释

privileged: # 用来给容器root权限,不安全的
environment: # 设置容器中的环境变量
volumes : # 用来存储docker持久化的数据,启动tomcat容器后,读取的是主机目录中的文件包
network_mode: #  设置容器的网络模式,下面是几种网络模式,有需要的可以自行查找资料
host: # 容器环境不隔离,将使用主机的端口和ip,不能与ports 端口映射同时使用
bridge
overlay
Macvlan

docker-compose.yml中的使用

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