错误
如果提示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