Docker run 容器使用-v挂载目录总会启动失败的解决方案
程序员文章站
2022-03-03 09:04:47
...
问题:docker run一个容器,并且挂载了目录;但是总是启动失败【docker ps 后发现没有启动】
[[email protected] tomcat]# docker run -d -p 9090:8080 -v /home/dockerfile/tomcat/test:/usr/local/apache-tomcat-8.5.61/webapps/test -v /home/dockerfile/tomcat/logs/:/usr/local/apache-tomcat-8.5.61/logs --name yjytomcat diytomcat
b13fc0b57b9fc17019bc8119cb572677889d663f24813150506f381842066c2d
[[email protected] tomcat]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2c245c597ae4 portainer/portainer "/portainer" 2 days ago Up 6 hours 0.0.0.0:8088->9000/tcp optimistic_lamport
原因:CentOS7中的安全模块selinux把权限禁掉了,无法使用-v命令进行挂载
解决方案:添加selinux规则,将要挂载的目录添加到白名单
[[email protected] tomcat]# chcon -Rt svirt_sandbox_file_t /home/dockerfile/tomcat/test
[[email protected] tomcat]# chcon -Rt svirt_sandbox_file_t /home/dockerfile/tomcat/logs
再重新创建容器即可。