转载

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

正文到此结束
Loading...