nginx - Nginx的 Alpine docker 失败,没有以前的ls?

标签 nginx permissions docker ls alpine

我想在基于Alpine的docker文件中与Nginx一起使用部首。
我目前正在开发Dockerfile,并注意到一个非常奇怪的行为,也许有人可以向我解释这一点。

  • 构建镜像

  • https://gist.github.com/cdpb/7ab1690f30fe6a911dac
  • docker run -it <id> sh
  • su radicale -c 'nginx -t'

  • :
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: [emerg] mkdir() "/var/lib/nginx/tmp/client_body" failed (13: Permission denied)
    nginx: configuration file /etc/nginx/nginx.conf test failed
    
  • ls -l /var/lib/nginx/tmp

  • :
    total 20
    drwxr-xr-x    2 radicale radicale      4096 Feb 17 11:39 client_body
    drwxr-xr-x    2 radicale radicale      4096 Feb 17 11:39 fastcgi
    drwxr-xr-x    2 radicale radicale      4096 Feb 17 11:39 proxy
    drwxr-xr-x    2 radicale radicale      4096 Feb 17 11:39 scgi
    drwxr-xr-x    2 radicale radicale      4096 Feb 17 11:39 uwsgi
    
  • su radicale -c 'nginx -t'

  • :
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    

    那么ls之后会发生什么呢?它不应该影响任何权限...!?有人可以复制吗?

    问候

    光盘

    UPDATE1:也可以与stat /var/lib/nginx/tmp/*一起使用

    UPDATE2:因为docker为Dockerfile中的每个命令创建了一个新层,所以我认为nginx必须与chmod / chown层在同一层中启动-不能解决问题

    UPDATE3:我对安装了alpine(virtualbox)的磁盘执行了相同的操作,但未发生此问题。因此,这更多是与Docker相关的问题,或者是一个特殊的 Alpine Docker问题

    最佳答案

    将我的答案从评论中移开。

    这种怪异现象通常与Docker storage driver有关。

    大多数操作系统上通常有几种可用的Docker存储驱动程序:

  • AUFS(在Ubuntu,Boot2Docker中可用且默认,并且在Debian测试中可用)-AFAIK历来是Docker中第一个FS驱动程序,AUFS并不是Mainline Linux内核的一部分,因此未被广泛采用。
  • OverlayFS-主线Linux内核是AUFS的最接近替代品
  • Device Mapper-速度最慢,但移植性最高的Docker存储驱动程序
  • 等...

  • 这是一张比较上面的链接中的不同存储驱动程序的漂亮图片。

    Pros and Cons of Docker storage drivers

    关于nginx - Nginx的 Alpine docker 失败,没有以前的ls?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35459276/

    相关文章:

    ssl - 无法获取在 nginx 配置中传递的主机 header

    java - android 问题 - 套接字失败

    playframework - 带有 Docker 和 Elastic Beanstalk 配置的 sbt-native-packager

    visual-studio - Visual Studio/Docker 开发 vs 最新版本?

    java - 如何在docker容器中运行的java maven项目中引用资源文件

    ruby-on-rails - 在 puma 和 nginx 上运行的 Rails 应用程序每隔几个小时就会因 Bad Gateway 而死掉

    wordpress - HHVM 在 fatal error 时输出状态代码 200,因此我无法使用 fastcgi_next_upstream

    jenkins - Jenkins :对匿名用户隐藏工作

    perl 文件大小计算不起作用

    nginx - nginx 背后的 ASP.NET 5