http://www.linuxidc.com/Linux/2015-03/115124.htm
在CentOS7中运行NodeJs的容器,发现挂载的本地目录在容器中没有执行权限,经过各种验证和Google搜索,找到了问题的原因,这里做一下记录。原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题:
1,在运行容器的时候,给容器加特权:
示例:docker run -i -t --privileged=true -v /home/docs:/src waterchestnut/nodejs:0.12.0
2,临时关闭selinux:
示例:su -c "setenforce 0"
之后执行:docker run -i -t -v /home/docs:/src waterchestnut/nodejs:0.12.0
注意:之后要记得重新开启selinux,命令:su -c "setenforce 1"
3,添加selinux规则,将要挂载的目录添加到白名单:
示例:chcon -Rt svirt_sandbox_file_t /home/docs
之后执行:docker run -i -t -v /home/docs:/src waterchestnut/nodejs:0.12.0
Docker的权限问题:
1. dial unix /var/run/docker.sock: permission denied
方法A: chcon -Rt svirt_sandbox_file_t /home/pandy/docker/tomcat_docker_inst_list/ 这个文件夹被挂在到docker容器里面,并可以执行权限.
方法B: docker run -d -p 8001:8001 --security-opt label:type:docker_t -v /var/run/docker.sock:/var/run/docker.sock --name dockerboard dockerboard/dockerboard 要是挂在系统文件夹, 那么可能要使用这种办法了,增加参数:
--security-opt label:type:docker_t, 这个type是什么类型, 又要去哪里参考?
分享到:
相关推荐
在Linux系统,特别是CentOS和Ubuntu中,Docker Compose是一个非常重要的工具,它允许用户通过YAML文件来定义和运行多容器的Docker应用。本文将详细介绍如何在这些操作系统中安装Docker Compose,以及如何使用提供的...
总结一下,通过Docker挂载主机目录可以方便地共享数据和资源,但需要注意权限问题,特别是当涉及到宿主机和容器之间的交互时。在实际应用中,根据安全性和性能需求,可能需要权衡是否使用`--privileged`参数,以及...
因为在Docker容器中,权限问题经常被用户忽略,但它们是导致Crontab无法执行的常见原因。确保Crontab文件的所有者是容器中的用户,并且这个用户有权限修改自己的Crontab文件。 总结起来,解决Docker容器中Crontab...
"Docker 部署 MySQL 8 ...本教程详细介绍了使用 Docker 部署 MySQL 8 的步骤,包括拉取镜像、创建配置文件和数据挂载目录、启动容器和创建用户等步骤。使用 Docker 部署 MySQL 8 可以轻松地部署和管理 MySQL 数据库。
Docker是一个流行的容器化平台,它允许我们在隔离的环境中轻松部署和管理应用程序及其依赖项。以下是对标题和描述中涉及步骤的详细解释。 首先,我们需要安装Docker。确保你的CentOS系统的内核版本高于3.10,可以...
使用 Docker run 命令启动 Jenkins 镜像,映射容器的端口,挂载工作目录,并分配足够的内存。 参数解读: * --restart=always: Docker 的开机自启动 * -m 2048M:给 Jenkins 分配最大内存 * -p 8081:8080:...
- **Docker容器**:使用Docker创建轻量级应用容器。 10. **开发环境**: - **开发工具**:如`gcc`、`make`、`git`等的安装与使用。 - **Python/Ruby/Java等编程环境搭建**:配置各种语言的运行环境。 通过这份...
在Docker中,容器的网络模型是基于网络命名空间(net namespace)和虚拟网络设备(如veth pair)实现的。容器在启动时,Docker会自动创建一对虚拟接口veth pair,它们分别位于宿主机和容器内部。宿主机端的veth接口...
这主要是由于CentOS7中的安全模块SELinux(Security-Enhanced Linux)默认的严格策略所致。SELinux通过定义上下文(Contexts)来限制进程对资源的访问,从而提高系统的安全性。 为了解决这个问题,有以下三种常用的...
在CentOS 7中,使用yum或dnf(Dandified YUM)命令安装、更新和卸载软件,同时了解RPM包管理系统及其依赖关系解决。 安全管理包括防火墙设置(firewalld或iptables)、SELinux策略、以及权限最小化原则的应用。此外...
7. 在示例中提到了为Docker资源池设置特定的磁盘空间,使用2TB的逻辑卷。这说明了在进行系统安装时,也可以提前规划好为特定应用预留的存储空间,如容器化平台Docker。 8. 文中还提到了一些用于系统引导的分区,...
标题中的"container-selinux-2.9-4.el7.noarch.zip"表明这是一个与Linux安全模块SELinux(Security-Enhanced Linux)相关的软件包,适用于版本为2.9的container-selinux,并且它是针对EL7(Enterprise Linux 7,通常...
在整个过程中,需要注意网络配置、软件版本匹配、仓库访问权限等问题,确保每个步骤都能顺利执行。同时,由于Kolla使用容器化技术,它提供了更好的隔离性和可移植性,使得OpenStack的部署和维护变得更加简单。
15. **Docker与容器技术**:Docker是基于Linux的轻量级虚拟化技术,提供容器化应用部署方式,简化环境配置和移植。 通过深入学习和实践这份“某公司Linux机密培训文件PPT”,你将能够熟练掌握Linux操作系统的使用,...
1. Docker 相关操作:从 Docker Hub 上下载镜像,运行 Docker 容器,登录 Harbor 仓库,标记镜像,推送镜像到当前项目,重命名镜像,删除镜像,查看所有镜像的运行状态,导出 / 导入镜像,查看容器详细信息,查看...
因此需要先关闭 swap 分区,并注释掉 `/etc/fstab` 中的 swap 挂载条目: ```bash swapoff -a && sysctl -w vm.swappiness=0 sed '/swap.img/d' -i /etc/fstab ``` ##### 6. 设置系统参数 为了支持容器网络,需要...
7. **用户与权限管理**:Linux系统中有多个用户,每个用户都有特定的权限。理解用户组、用户权限(rwx)和sudo命令对于系统管理至关重要。 8. **网络与服务**:Linux支持多种网络协议和服务,如HTTP、FTP、SSH等。...