Tag: 权限

为什么在容器外的目录层次结构的docker cp失败并且权限被拒绝?

背景: 这个docker从容器的失败行为是有点古怪 – 时髦,所以我认为它应该logging。 我找不到一个匹配的问题或docker问题,但我可以看到我认为表示人们遇到这个问题的闲谈/评论。 我有一个docker图像,并在图像创build时,我收拾了图像中的一些目录。 第一次启动容器时,将目录从容器中复制出来,然后用来初始化一个目录,然后将其作为容器的docker卷进行安装。 问题: 我看到的是,取决于如何build立图像,有时候,目录中的docker cp会在做目录的部分拷贝之后失败,并且“open <dir> / <file>权限被拒绝” 。 我看到,当一个开发人员在本地创build图像时,它工作正常。 我看到,当从发布的模块构build的图像失败时。 做一个docker cp作为根目录工作正常。 作为普通用户做一个泊坞窗CP目录不工作。 该目录已创build,但是是空的。 目录权限(奇怪的源目录)竟然是问题的原因 这有点明显,但也不明显; 最好的目录可以创build好,所以你会希望完整的目录层次结构的recursion拷贝能够工作,不pipeSOURCE目录的权限是什么。 在源代码控制目录中,拥有写权限集。 当模块被释放时,写入权限被删除。 所以解决scheme是在使用已发布的模块构build时,必须重新添加写入权限。 drwxr-xr-x dev/dev buildarea/…/jenkins/ drwxr-xr-x dev/dev buildarea/…/jenkins/email-templates/ dr-xr-xr-x root/root /releasearea/…/jenkins/ dr-xr-xr-x root/root /releasearea/…/jenkins/email-templates/ 我从2017年7月的集装箱docker看到这个17.03.1 centos cp。

在Openshift中运行一个特权的docker集装箱

我目前正在尝试修改我的泊坞窗图像中的一些内核参数与sysctl -p和文件/etc/sysctl.conf 。 在试图在Openshift内部完成之前,我只是执行了docker run –privileged …而且工作,但现在我需要在Openshift Origin 3.6.0中部署和运行容器。 问题是我无法访问Openshift中的SCC,因为我不是Openshift服务器的pipe理员,所以我想知道是否有办法在不修改SCC的情况下执行此操作。 有没有什么办法可以在oc new-app …指定oc new-app …我需要在docker run …的参数docker run … ? 如果不是的话,唯一的办法就是将我的项目包含在Openshift服务器的特权SCC中?

Docker – 来自权限的权限

我对Docker非常陌生,所以我可能会错过一些东西,我的数据卷文件夹拥有root 。 这是我做的(使用nginx反向代理): # Data volume container docker create -v <data path> –name <app>-data tianon/true # Webapp container docker run –volumes-from <app>-data –name <app> \ -e VIRTUAL_HOST=<url> \ <image> & 但nginx不能写入数据文件夹,如果我在我的容器中: drwxr-xr-x 2 root root 4096 Dec 16 19:03 data drwxr-xr-x 3 www-data www-data 4096 Dec 16 18:57 doc drwxr-xr-x 2 www-data www-data 4096 Dec […]

从docker nginx / php-fpm安装在本地卷(Mac)上的Laravel无法写入会话文件

我有一个docker-compose.yml文件,运行以下命令(创build名为mmm / nginx的映像): web: image: mmm/nginx ports: – "80:80" volumes: – ./var:/var/www – ./etc/nginx/sites-enabled:/etc/nginx/sites-enabled/ links: – php – db php: image: rossriley/php56-fpm volumes: – ./var:/var/www – ./etc/php5/php-fpm.conf:/etc/php5/fpm/php-fpm.conf links: – db db: image: sameersbn/mysql ports: – "3306:3306" volumes: – /var/lib/mysql environment: – DB_NAME=tables – DB_USER=table – DB_PASS=pass 它很好地提供了存储在/var/www 当它尝试写入日志并尝试写入会话文件时,会发生该问题。 虽然它创build的文件,它不能写。 storage的文件夹及其嵌套目录的权限设置为777 。 为了让laravel写信给他们,我必须$ chmod 777 <.log|sessionfile> […]

docker运行如何与容器中的shell运行命令有所不同

当我试图在容器中运行logstash并访问通过主机卷提供的configuration时,我遇到了拒绝权限的问题。 但是,如果我明确地运行在一个shell内的命令,它工作正常。 $ docker run -it –rm -v "$PWD/logstash/config":/etc/logstash/conf.d:Z logstash:latest logstash -f /etc/logstash/conf.d The error reported is: Permission denied – /etc/logstash/conf.d/logstash.conf $ docker run -it –rm -v "$PWD/logstash/config":/etc/logstash/conf.d:Z logstash:latest sh -c 'logstash -f /etc/logstash/conf.d' Settings: Default pipeline workers: 4 Logstash startup completed $ docker run -it –rm -v "$PWD/logstash/config":/etc/logstash/conf.d:Z logstash:latest ls -lZ /etc/logstash/conf.d total 4 […]

Docker没有安装主机文件

我试图从这里使用一个docker图像来开始build立一个数据库。 我可以让docker使用安装容器 docker run -d –privileged=true -p 8888:8888 –name ipyn3 -v /home/repos/DoSomeData/:/home/ds/notebooks/ dataquestio/python3-starter 主目录“DoSomeData”目前包含一个文件夹“Hillary_Emails”,其中包含一个input数据目录和一个iPython Notebook文件。 当我进入ipython笔记本,它可以看到“Hillary_Emails”目录,但没有别的。 当我使用Bashlogin容器并运行ls时,情况也是如此。 它似乎只是复制目录。 运行docker inspect ipyn3给出 [ { "Id": "b1cbba654135d46170e78c8ac522601ee743e1b1d3959b10fc7784c57c696433", "Created": "2016-03-14T20:20:24.413863418Z", "Path": "/home/ds/run_ipython.sh", "Args": [], "State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 7629, "ExitCode": 0, "Error": "", "StartedAt": "2016-03-14T20:20:25.344852732Z", "FinishedAt": "0001-01-01T00:00:00Z" […]

在Docker环境中运行Symfony时的文件夹权限

我在OSX上运行一个Docker容器。 容器包括: Symfony的 Nginx的 PHP-FPM Redis的 这是运行Symfony应用程序的一个非常常见的设置。 我遇到了一些奇怪的文件夹权限问题,我得到这个错误: 错误截图 我的Symfony可以创build一个文件夹 /var/www/var/chache 但是它不能写入它。 一旦创build了caching文件夹,文件夹权限就设置为: 10344 drwxr-xr-x 1 1000 staff 68 Apr 15 00:33 cache 该文件夹的所有者是我的本地OSX用户,Docker正在运行。 我试图在Docker中更改Symfony CLI中的文件夹权限或所有者,并且没有任何效果。 我试图在我的本地控制台chmod -R 777 ,权限被改变,但是然后Symfony创build文件夹里面的caching文件夹,不能再写入它。 我也尝试在app_dev.php中禁用caching: $kernel = new AppKernel('dev', true); // $kernel->loadClassCache(); $request = Request::createFromGlobals(); 在config.yml中: twig: cache: false 没有任何效果,所以我迷失在这里。 任何想法如何解决一个问题?

Docker – 非特权用户可以写入容器内部

我已经使用以下Dockerfile创build了基于centos:6.8映像的容器: FROM centos:6.8 RUN adduser -m test USER test 然后使用docker build构build图像: docker build -t dockerdemo . 然后我开始一个容器: docker run -ti dockerdemo bash 当我在容器中时,我似乎可以将“testing”用户写入容器的根目录中: [test@9af9c4aeb990 /]$ ls -ld / drwxr-xr-x 29 root root 4096 Oct 25 09:49 / [test@9af9c4aeb990 /]$ id -a uid=500(test) gid=500(test) groups=500(test) [test@9af9c4aeb990 /]$ touch /test-file [test@9af9c4aeb990 /]$ ls -l /test-file -rw-rw-r– 1 […]

如何在保持权限的同时在Docker容器中共享Laravel应用程序代码库?

我创build了一个dockerfile来容纳我的Laravel应用程序用于本地开发环境。 到目前为止,我已经实现了我所需要的大部分function,但是,每一个命令都会进入容器(比如composer install等等)将会改变我的代码库文件和容器root的UID,并在主机上产生权限冲突。 到目前为止,这是我的dockerfile https://github.com/timegridio/dockerfiles和我的项目代码库 (在需要的情况下)。 在我的研究中,我已经尝试了一些关于这个问题的提示和本文的build议 ,我认为这些build议与我所需要的非常接近。 然而,我没有成功的这些aproaches,并得到了错误(请参阅问题的意见 ,我粘贴的产出,但我不想在这个问题上混合这个方法呢)。 谢谢你的时间!

Docker容器中的用户和文件权限configuration(docker-compose版本3)

Docker 声明它的容器是 “…默认情况下是非常安全的;特别是如果你照顾在容器内运行你的进程作为非特权用户(即非root)” 因此,我试图: 使用适当处理用户执行的官方图像 避免在生产中安装主机卷,并使用COPY 当我将代码和configuration文件复制到容器卷中时,所有目录和文件都将创build为“… UID和GID为0”(根拥有者),如文档中所述。 问题:如果文件和目录由root拥有,但是运行的进程是由非root用户拥有,如www-data ,那么是否仍然存在安全风险? 例如,用php-fpm : root@7bf71145c18c:/var/www/html# ls -l total 1220 -rw-rw-r– 1 root root 5931 May 10 12:28 index.php drwxrwxr-x 3 root root 4096 May 10 12:28 logs -rw-rw-r– 1 root root 28 May 10 12:28 robots.txt root@7bf71145c18c:/var/www/html# ps -ef UID PID PPID C STIME TTY TIME CMD […]