问题:docker run一个容器,并且挂载了目录;但是总是启动失败【docker ps 后发现没有启动】

[root@localhost 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
[root@localhost 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规则,将要挂载的目录添加到白名单

[root@localhost tomcat]# chcon -Rt svirt_sandbox_file_t /home/dockerfile/tomcat/test
[root@localhost tomcat]# chcon -Rt svirt_sandbox_file_t /home/dockerfile/tomcat/logs


再重新创建容器即可。

转载:https://blog.csdn.net/qq_40569835/article/details/112854523

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐