Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker 在Centos 7 环境下启动报错 #2

Closed
masonlorain opened this issue Sep 27, 2017 · 11 comments
Closed

Docker 在Centos 7 环境下启动报错 #2

masonlorain opened this issue Sep 27, 2017 · 11 comments
Labels

Comments

@masonlorain
Copy link

服务器环境:
Linux centos7 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Docker version 17.09.0-ce, build afdb6d4
docker-compose version 1.16.1, build 6d1ac219
报错如下:
Centos 7
在 windows 环境下启动正常
Windows

@DuanPengfei
Copy link
Collaborator

看起来是文件夹访问权限问题,因为 CentOS 默认是打开 SELinux 的,有很多情况与这个有关,不过从截图中看不出来。

我在 VirtualBox 中安装了 CentOS 7 3.10.0-693.el7.x86_64,使用 yum 安装 rpm 包的方式安装了 Docker version 17.09.0-ce, build afdb6d4,使用 docker-compose version 1.16.1, build 6d1ac21 没有复现错误。

可以在主机 easy-mock 目录和 docker 内 easy-mock 目录执行命令 id -Zls -ldZ,然后把结果贴出来看看。

也可以参考一下这些方式看看是否有帮助
moby/moby#14175
http://www.projectatomic.io/blog/2015/06/using-volumes-with-docker-can-cause-problems-with-selinux

@masonlorain
Copy link
Author

感谢回复,以下为命令结果贴图和做的一些尝试


命令结果贴图

主机
qq 20170929001811
docker
qq 20170929001726

做的一些尝试

尝试使用 mrs 用户启动 sudo docker-compose up ,报错和 root 用户下启动相同
尝试不挂载 logs 目录,能启动成功

@DuanPengfei
Copy link
Collaborator

DuanPengfei commented Sep 29, 2017

通过 id -Z 结果可以看出系统 SELinux 是关闭状态,按理来说不会触发 SELinux 导致容器内读取文件 permission denied 问题。我同样把系统 SELinux 关闭后启动新的容器,也没有复现问题。我的 ls -ldZ 的结果和你不太一样,我这边如下所示:

image

ls -Z 会列出文件安全上下文,可是你这里没有,也看不出什么问题。

现在能想到的做法是在主机上和容器内的 easy-mock 目录下 ls -al 查看一下文件拥有者和文件权限。

对于不挂在 logs 目录可以启动成功,有可能是 easy-mock 程序本身会判断文件夹是否存在,不存时自动创建或者不记录日志,没有参与 easy-mock 程序开发,具体就不太清楚了 😂。

@chuangker
Copy link

util/log.js#L11-L15

const logDir = path.join(__dirname, '../logs')
if (!fs.existsSync(logDir)) {
  mkdirp.sync(logDir)
}

@DuanPengfei
Copy link
Collaborator

😄 果然做了判断,不过虽然不挂载 logs 文件夹可以用,但是日志文件保存调试就不太方便了

@masonlorain
Copy link
Author

尝试在虚拟机的 Centos 7 系统上使用同样的配置部署,成功了。
尝试在安装了Centos 7 的电脑上使用同样的配置部署,报错和阿里云服务器上的报错一样。
=.=

@DuanPengfei
Copy link
Collaborator

👌 待今天下班后把家里机器装成 CentOS 7 尝试一下。

@DuanPengfei
Copy link
Collaborator

家里机器 CentOS 7 没什么问题,十一长假没太关注,等稍有空去阿里云试一下。

@DuanPengfei
Copy link
Collaborator

后续在我自己的服务器尝试了下,也没有报错出现,issue 暂时关闭了,有后续讨论我们可以再打开。

@masonlorain
Copy link
Author

masonlorain commented Dec 1, 2017 via email

@Kaier33
Copy link

Kaier33 commented Nov 30, 2018

遇到同样的问题...不挂载logs才能启动...emmmmmm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants