Docker 容器中运行 su 出现 system error 问题排查
<p style="box-sizing:inherit;margin-top:0px;margin-bottom:20px;padding:0px;line-height:inherit;word-spacing:0.05rem;white-space:normal;color:rgb(51,51,51);font-family:'-apple-system', BlinkMacSystemFont, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:16px;background-color:rgb(255,255,255);">今日发现在 Docker 容器中操作 su xxx 切换为某个用户时,出现了 system error 的错误,没有除此之外没有任何提示。另外还发先,容器中的 cron 定时任务调度也不执行。</p><p style="box-sizing:inherit;margin-top:0px;margin-bottom:20px;padding:0px;line-height:inherit;word-spacing:0.05rem;white-space:normal;color:rgb(51,51,51);font-family:'-apple-system', BlinkMacSystemFont, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:16px;background-color:rgb(255,255,255);"></p>
<p style="box-sizing:inherit;margin-top:0px;margin-bottom:20px;padding:0px;line-height:inherit;word-spacing:0.05rem;white-space:normal;color:rgb(51,51,51);font-family:'-apple-system', BlinkMacSystemFont, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:16px;background-color:rgb(255,255,255);">首先查看系统日志文件进行排查,没发现任何错误信息,该条路走不通。</p>
<p style="box-sizing:inherit;margin-top:0px;margin-bottom:20px;padding:0px;line-height:inherit;word-spacing:0.05rem;white-space:normal;color:rgb(51,51,51);font-family:'-apple-system', BlinkMacSystemFont, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:16px;background-color:rgb(255,255,255);">在宿主机中执行 su 命令是没问题的,刚开始怀疑是否是 SELinux 问题导致的,排查宿主机的 SELinux 为 Disabled 状态,也没问题。</p>
<p style="box-sizing:inherit;margin-top:0px;margin-bottom:20px;padding:0px;line-height:inherit;word-spacing:0.05rem;white-space:normal;color:rgb(51,51,51);font-family:'-apple-system', BlinkMacSystemFont, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:16px;background-color:rgb(255,255,255);">后来发现是由于 docker 的运行权限问题。大约在 0.6 版本,privileged 被引入 docker。使用该参数,container 内的 root 拥有真正的 root 权限。否则,container 内的 root 只是外部的一个普通用户权限。privileged 启动的容器,可以看到很多 host 上的设备,并且可以执行 mount。甚至允许你在 docker 容器中启动 docker 容器。</p>
<p style="box-sizing:inherit;margin-top:0px;margin-bottom:20px;padding:0px;line-height:inherit;word-spacing:0.05rem;white-space:normal;color:rgb(51,51,51);font-family:'-apple-system', BlinkMacSystemFont, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:16px;background-color:rgb(255,255,255);">后来通过如下命令运行解决,新增加了 --privileged 参数,帮助各位排个坑。</p>
<pre class="hljs properties">docker run --name xxx --privileged xxx</pre>
<p><br></p><hr>以下是回复内容:<br><hr><br>采集网址:<br>https://modstart.com/thread/832
页:
[1]