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 部署 MySQL 8 ...本教程详细介绍了使用 Docker 部署 MySQL 8 的步骤,包括拉取镜像、创建配置文件和数据挂载目录、启动容器和创建用户等步骤。使用 Docker 部署 MySQL 8 可以轻松地部署和管理 MySQL 数据库。
在 CentOS 7 中,你可以使用官方的 yum 源来安装 Docker。首先,确保系统是最新的,然后安装必要的依赖包,如 `yum-utils`、`device-mapper-persistent-data` 和 `lvm2`: ```bash sudo yum install -y yum-utils...
docker挂载本地目录的方法总结: Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。 譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定: # docker ...
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策略、以及权限最小化原则的应用。此外...
标题中的"container-selinux-2.9-4.el7.noarch.zip"表明这是一个与Linux安全模块SELinux(Security-Enhanced Linux)相关的软件包,适用于版本为2.9的container-selinux,并且它是针对EL7(Enterprise Linux 7,通常...
Pod容器中进行域名解析测试 93 25.5. kubernetes-dashboard部署 93 26. GlusterFS分布式文件系统部署 95 26.1. 在kubernetes中部署 95 26.1.1. 安装: 95 26.1.2. 创建Heketi服务: 97 26.1.3. 为Heketi设置...
在整个过程中,需要注意网络配置、软件版本匹配、仓库访问权限等问题,确保每个步骤都能顺利执行。同时,由于Kolla使用容器化技术,它提供了更好的隔离性和可移植性,使得OpenStack的部署和维护变得更加简单。
15. **Docker与容器技术**:Docker是基于Linux的轻量级虚拟化技术,提供容器化应用部署方式,简化环境配置和移植。 通过深入学习和实践这份“某公司Linux机密培训文件PPT”,你将能够熟练掌握Linux操作系统的使用,...
1. Docker 相关操作:从 Docker Hub 上下载镜像,运行 Docker 容器,登录 Harbor 仓库,标记镜像,推送镜像到当前项目,重命名镜像,删除镜像,查看所有镜像的运行状态,导出 / 导入镜像,查看容器详细信息,查看...
7. **用户与权限管理**:Linux系统中有多个用户,每个用户都有特定的权限。理解用户组、用户权限(rwx)和sudo命令对于系统管理至关重要。 8. **网络与服务**:Linux支持多种网络协议和服务,如HTTP、FTP、SSH等。...
- 学习挂载与卸载文件系统,修改fstab文件进行自动挂载。 第9日:Shell脚本编程 - 掌握基础的Shell语法,如变量、条件语句、循环。 - 学习编写简单的Shell脚本,提高工作效率。 第10日:权限与文件系统安全 - 理解...
7. **权限与用户管理**:理解Linux的权限模型,包括用户、组和文件权限,学习如何添加、删除用户,以及权限设置。 8. **软件包管理**:学习使用apt(Ubuntu/Debian)、yum(CentOS/RHEL)等包管理工具安装、更新和...
最后,书中可能会提供一些高级主题,如编译自定义内核、虚拟化技术(如KVM)、以及容器技术(如Docker)的基础知识。 总的来说,《Linux私房菜》基础学习篇是一本全面的入门教程,通过阅读此书,你不仅能掌握Linux...