问题背景(描述)
部署dockerWeb后,重启访问403,详细如下
docker容器正常运行,且开机自启
#通过如下命令开机自启
docker update --restart = always 容器id
但是访问web服务出现403.
进入容器后,输入命令提示如下:
解决方案
关闭selinux
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。
方法一:临时关闭
#输入命令 重启后仍会出现
setenforce 0
方法二:永久关闭
# 输入命令vi /etc/selinux/config 打开config文件
将SELINUX=enforcing改为SELINUX=disabled
其他问题
永久关闭之后,遇到了新的问题,容器无法自启。并且,开启容器时出现如下问题。
首先是容器未开机自启
其次无法start 启动
解决方案
开机时自动执行 setenforce 0 即可。
记得将/etc/selinux/config 文件修改回去
一、授予执行权限
CentOS 7 下,/etc/rc.d/rc.local 默认没有执行权限,需要授予执行权限:
chmod +x /etc/rc.d/rc.local
二、添加指令
在 /etc/rc.d/rc.local 中添加要执行的指定命令,如下:
setenforce 0