文档章节

centos7中docker文件挂载,容器中没有执行权限

caltrop
 caltrop
发布于 2015/03/17 17:14
字数 225
阅读 3126
收藏 42

在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

© 著作权归作者所有

caltrop
粉丝 2
博文 8
码字总数 5018
作品 0
海淀
高级程序员
私信 提问
加载中

评论(7)

golang
golang

引用来自“runescape”的评论

引用来自“golang”的评论

docker run -it -p 8080:8080 -p 49152-49162:49152-49162 codenvy/che
请问我这样启动的时候,镜像能下载下来,但是后面就报错了:
[root@localhost ~]# docker run -it -p 8080:8080 -p 49152-49162:49152-49162 codenvy/che
mount: permission denied
rmdir: failed to remove 'cpu': Read-only file system
mount: permission denied
rmdir: failed to remove 'cpuacct': Read-only file system
* Starting Docker: docker [ OK ]

!!! Running 'docker' succeeded, but 'docker ps' failed. This usually means that docker cannot reach its daemon.

Looks like something went wrong. Possible issues:
1. (Win | Mac) VirtualBox not installed ==> Rerun Docker Toolbox installation
2. (Win | Mac) Docker Machine not installed ==> Rerun Docker Toolbox installation
3. (Win | Mac) Docker is not reachable ==> Docker VM failed to start
4. (Win | Mac) Docker ok, but docker ps fails ==> Docker environment variables not set properly
5. (Linux) Docker is not reachable ==

后面有详细的解决方案提示,检查下docker监控服务是否开启和selinux问题
Docker images有镜像输出,Docker ps有输出头,但是没有container。selinux我也关闭了!
caltrop
caltrop 博主

引用来自“golang”的评论

docker run -it -p 8080:8080 -p 49152-49162:49152-49162 codenvy/che
请问我这样启动的时候,镜像能下载下来,但是后面就报错了:
[root@localhost ~]# docker run -it -p 8080:8080 -p 49152-49162:49152-49162 codenvy/che
mount: permission denied
rmdir: failed to remove 'cpu': Read-only file system
mount: permission denied
rmdir: failed to remove 'cpuacct': Read-only file system
* Starting Docker: docker [ OK ]

!!! Running 'docker' succeeded, but 'docker ps' failed. This usually means that docker cannot reach its daemon.

Looks like something went wrong. Possible issues:
1. (Win | Mac) VirtualBox not installed ==> Rerun Docker Toolbox installation
2. (Win | Mac) Docker Machine not installed ==> Rerun Docker Toolbox installation
3. (Win | Mac) Docker is not reachable ==> Docker VM failed to start
4. (Win | Mac) Docker ok, but docker ps fails ==> Docker environment variables not set properly
5. (Linux) Docker is not reachable ==

后面有详细的解决方案提示,检查下docker监控服务是否开启和selinux问题
golang
golang
docker run -it -p 8080:8080 -p 49152-49162:49152-49162 codenvy/che
请问我这样启动的时候,镜像能下载下来,但是后面就报错了:
[root@localhost ~]# docker run -it -p 8080:8080 -p 49152-49162:49152-49162 codenvy/che
mount: permission denied
rmdir: failed to remove 'cpu': Read-only file system
mount: permission denied
rmdir: failed to remove 'cpuacct': Read-only file system
* Starting Docker: docker [ OK ]

!!! Running 'docker' succeeded, but 'docker ps' failed. This usually means that docker cannot reach its daemon.

Looks like something went wrong. Possible issues:
1. (Win | Mac) VirtualBox not installed ==> Rerun Docker Toolbox installation
2. (Win | Mac) Docker Machine not installed ==> Rerun Docker Toolbox installation
3. (Win | Mac) Docker is not reachable ==> Docker VM failed to start
4. (Win | Mac) Docker ok, but docker ps fails ==> Docker environment variables not set properly
5. (Linux) Docker is not reachable ==
caltrop
caltrop 博主

引用来自“Mr6”的评论

--privileged 这个选项慎用。

引用来自“Feng_Yu”的评论

同意,如果LZ再认真google,就会发现这个选项是官方都不建议随意使用的。继续google,会发现很多人提供了不使用--privileged选项的方案
谢谢各位的建议,我目前使用的第三种方式添加规则解决的。
Feng_Yu
Feng_Yu

引用来自“Mr6”的评论

--privileged 这个选项慎用。
同意,如果LZ再认真google,就会发现这个选项是官方都不建议随意使用的。继续google,会发现很多人提供了不使用--privileged选项的方案
5292401
5292401
--privileged 这个选项慎用。
5292401
5292401
--privileged 这个选项慎用。
Docker 数据卷权限实例详解

Docker 数据卷权限 在CentOS7中运行NodeJs的容器,发现挂载的本地目录在容器中没有执行权限,经过各种验证和Google搜索,找到了问题的原因,这里做一下记录。原因是CentOS7中的安全模块selin...

dragon_tech
05/31
94
0
Docker容器管理、仓库管理、数据管理、数据卷备份与恢复

[toc] Docker容器管理、仓库管理、数据管理、数据卷备份与恢复 一、容器管理 创建一个容器:docker create -it centos7 bash,注意centos7是必须是已经存在的 启动容器:docker start CONTAI...

Xavi2017
2018/07/11
0
0
Docker 容器数据管理:挂载、备份、恢复

挂载、备份、恢复数据。 创建集中卷组: docker run --name dbdata -v /dbdata centos7:file echo “Data-only container for mysql.” 挂载使用: docker run -rt --volumes-from dbdata c......

zrer90
2018/07/01
0
0
Docker容器学习梳理--基础知识(1)

Docker是PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。 Docker是通过内核虚拟化技术(namespace以及cgroups等)来...

dengaosky
2017/12/27
0
0
Docker自制镜像之私有云平台完整版

一、Docker安装 Docker之安装篇 二、Docker操作 搜索中央仓库可用镜像 $ docker search centos 2.1【镜像操作命令】 2.1.1 查看所有镜像docker images删除所有镜像 $ docker rmi $(docker im...

saxon_i
2018/08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

cesium调用天地图服务

本文转载于:专业的前端网站➧cesium调用天地图服务 全球矢量地图服务 var viewer = new Cesium.Viewer("cesiumContainer", { animation: false, //是否显示动画控件 baseLayerPi...

前端老手
28分钟前
4
0
Docker常用命令

场景一:镜像下载、运行及删除 COMMAND DESC 查看 docker images 列出所有镜像(images) docker ps 列出正在运行的容器(containers) docker ps -a 列出所有的容器 docker pull centos 下载cen...

_Change_
28分钟前
5
0
Spark ML使用DataFrame进行K-Means

1.前言 前一篇文章使用了RDD的方式,进行了K-Means聚类. 从Spark 2.0开始,程序包中基于RDD的API spark.mllib已进入维护模式.现在,用于Spark的主要机器学习API是软件包中基于DataFrame的API...

一位不知名的帅气网友
31分钟前
4
0
当遇到美女面试官之如何理解Redis的Expire Key(过期键)

  在面试中遇到美女面试官时,我们以为面试会比较容易过,也能好好表现自己技术的时候了。然而却出现以下这一幕,当美女面试官听说你使用过Redis时,那么问题来了。 👩面试官:Q1,你知道...

ccww_
35分钟前
5
0
干货来袭!游戏背景音乐的角色创建和主界面

角色创建/选择 在一些大型的游戏中,例如多人在线的游戏玩家必须创建一个游戏的虚拟人物进行扮演游戏。初次玩这款游戏的人都会进行创建,选择职业起名字性别选择编辑人设样式等等的操作,通常...

奇亿音乐
39分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部