Tag: 权限

允许Web服务器编辑泊坞窗容器内的文件

我正在尝试在我的Mac上将Docker设置为Web开发者环境。 我从我的机器共享本地卷到容器内的web根文件夹。 但是我被限制了权限,docker中的web服务器不能创build一个新的文件夹或者把新的文件写入共享卷,因为几乎所有的文件都有权限744,不同的用户和组。 我以为使所有权限777,但它听起来不好听,因为在混帐和未来在服务器上,它也将具有不良的权限。 以任何方式,创buildWeb服务器的新文件和文件夹都具有错误的权限。 我想在我的Mac上运行相同的组名称,在Docker(www-data)中运行Web服务器,并将权限更改为774.但这听起来很愚蠢。 Docker中快速pipe理文件的最佳方法是什么? 在我的方式,我需要编辑PHP文件,并立即在浏览器中看到的结果。

在docker容器中不能使用tc

我正在使用tc来限制docker容器中的发送速率。 将下面的脚本添加到Dockerfile中: tc qdisc add dev eth0 root handle 1: htb default 2 tc class add dev eth0 parent 1:1 classid 1:2 htb rate 2mbit ceil 2mbit prio 2 tc qdisc add dev eth0 parent 1:2 handle 2: sfq perturb 10 tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 192.168.1.124 […]

不以root身份运行时从容器访问命名卷?

我在Docker Compose下运行Celery。 我想使芹菜的花持久。 所以我这样做: version: '2' volumes: […] flower_data: {} […] flower: image: [base code image] ports: – "5555:5555" volumes: – flower_data:/flower command: celery -A proj flower –port=5555 –persistent=True –db=/flower/flower 但是,那么我得到: IOError: [Errno 13] Permission denied: 'flower.dat' 我跑了以下来解释为什么: bash -c "ls -al /flower; whoami; celery -A proj flower –persistent=True –db=/flower/flower" 这就说明了为什么: flower_1 | drwxr-xr-x 3 […]

错误:无法取消链接旧的'gulpfile.js'(权限被拒绝),而使用Docker Compose的开发环境

我正在开发一个PHP 7.1 Web应用程序使用以下内容: Symfony 3.2 Docker Compose 1.12.0 Ubuntu 16.04 x64 当运行docker-compose up -d ,我的绑定安装项目目录的所有者和组被更改为root。 因此,每当我尝试提交更改或从我的远程git pull ,我会看到以下内容: error: unable to unlink old 'gulpfile.js' (Permission denied) fatal: Could not reset index file to revision 'HEAD^'. 将项目目录的所有者和组更改回我的用户将删除该错误。 在使用Docker Compose进行开发时,是否有更简单的方法来防止这些用户权限冲突? 编辑 这是我目前的目录结构的概述: dockerComposeAndProjectDir/ |– projectDirectory/ |– dockerComposeDirectory/ |– docker-compose.yml

我可以控制泊坞窗图像中绑定安装卷的所有者吗?

我有一个包含日食的docker图像。 我在一个名为eclipse的账户下运行eclipse 。 我想用我的工作空间目录forms绑定到容器上的主机来启动镜像。 不幸的是,容器内已安装卷的所有者不是eclipse 。 挂载的卷只保留主机的UID和GID。 有没有一种方法来控制容器中安装的UID和GID?

docker-maven插件尝试构build图像时发生了什么?

我正在docker容器中运行Jenkins,Jenkins试图运行我的Maven构build。 作为构build的一部分,docker maven插件指示它构build一个docker镜像。 POM的那部分在下面。 <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.3.8</version> <configuration> <imageName>example</imageName> <baseImage>java:latest</baseImage> <skipDockerBuild>false</skipDockerBuild> <cmd>["java", "-jar", "myLogThread-jar-with-dependencies.jar"]</cmd> <resources> <resource> <directory>target/</directory> <include>config.properties</include> </resource> <resource> <directory>${project.build.directory}</directory> <include>myLogThread-jar-with-dependencies.jar</include> </resource> </resources> </configuration> </plugin> maven构build运行,直到它试图build立图像,在这一点下面的错误消息吐出: [INFO] Building image example [INFO] I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Permission denied 我可以进入正确的目录和Dockerfile在那里。 我也可以运行sudo docker build . 它会build立没有问题的形象。 为什么Maven构build失败? 对localhost有什么要求:80? 我怎样才能纠正这个问题,让maven可以build立我的形象? 注意:我在这个容器中安装了docker socket和binary

如何在Docker容器中使用setfacl?

这似乎是在容器内的文件系统没有“acl”,因此“setfacl”将无法正常工作。 而且它也不会让我重新安装它,甚至不能运行'df -h'。 我需要setfacl,因为我根据自己的网站创build了自己的所有文件,并且我给webserver用户写入权限只有几个目录,如caching,日志等。 我能做什么?

尝试以非root用户的身份从容器内写入已装入的卷时出现问题

我正在使用一个将运行ZooKeeper的容器,但是我遇到了有关在我的容器中安装的主机卷的权限问题。 这是我的设置: 在主机上(Ubuntu 14.04): 创build一个“zookeeper”系统用户(id = 106)和组(id = 111)。 创build目录“/ var / log / zookeeper”并将其所有权设置为zookeeper(即chown zookeeper:zookeeper)。 这是我要装入我的容器的目录。 在容器内部(Ubuntu 14.04): 还创build了一个“zookeeper”系统用户(id = 102)和group(id = 105),我用它作为用户在进入点执行命令。 创build相同的目录“/ var / log / zookeeper”,它将被挂载并将其所有权设置为zookeeper:zookeeper(尽pipe我不认为这很重要)。 一旦我用/ var / log / zookeeper安装启动我的容器,并且在容器内部打开一个作为zookeeper用户(在容器内创build的用户)的shell,我发现如果出现“Permission Denied”错误我尝试在挂载的目录/ var / log / zookeeper中创build一个文件。 当我做一个“ls -l”来查看这个目录的所有权时(仍然在容器中),它看起来像这样: drwxr-xr-x 2 106 111 4096 Jun 30 17:18 zookeeper 在这种情况下,106和111对应于主机的动物园pipe理员用户和组ID,我认为这是问题所在。 我尝试在容器内部打开一个shell,但是这次我以root用户身份进入,上面描述的场景工作得很好,只是root是创build的文件的所有者(这是预期的)。 […]

部署自己的Docker Registry:registry重新启动

我知道Docker Hub,我知道你可以在其上创build自己的仓库。 但是当你想创build多个私人回购时,你必须付钱。 所以我希望我自己的Docker Registry Server使用自签名证书。 我正在遵循官方文档所以这些步骤是:在证书/ mkdir -p certs && openssl req \ -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \ -x509 -days 365 -out certs/domain.crt 所以这在我的certs /中创build了一个domain.key和domain.cert。 现在是时候开始我的dockerregistry(使用键): docker run -d -p 5000:5000 –restart=always –name registry \ -v `pwd`/certs:/certs \ -e REGISTRY_HTTP_TLS_CERTIFICATE=certs/domain.crt \ -e REGISTRY_HTTP_TLS_KEY=certs/domain.key \ registry:2 部署后我看到这个:$ docker ps "/bin/registry /etc/d" 12 seconds […]

Docker:打开/certs/domain.crt:权限被拒绝

我正在尝试设置私人dockerregistry。 我正在使用我自己生成的证书。 但我的registry的docker日志显示这个错误: time="2015-12-08T08:51:54Z" level=fatal msg="open /certs/domain.crt: permission denied" 我有我的证书: /home/centos/certs/certs/ 这包含domain.crt和domain.key 我有一个许可被拒绝。 但是我不知道这种情况下最好的解决scheme是什么? 我必须向哪个用户提供哪些权利? 我只是试图给所有的权利,但它不工作:我试过: sudo chmod -R 777 /home/centos/certs sudo chown -R root:root /home/centos/certs