Tag: 权限

path在容器内不可写

我有一个运行在Docker容器中的Laravel应用程序,并且正在运行Path "/var/www/app/storage/clockwork" is not writable. 根据Laravel提供的信息,用户是www-data 。 最初它显示了拥有该目录的用户和组的“1000”和“1001”。 我修改了uid和gid以便www-data用户和组匹配容器中的那些用户和组。 ls -l显示如下: drwxrwxr-x 2 www-data www-data 4096 May 10 19:01 clockwork 如果www-data用户拥有目录,我不明白为什么不能写入目录。 我在这里错过了什么?

在Docker容器中使用GitLab-CI找不到文件

使用GitLab-CI,我试图将一个秘密variables回显到Docker容器内的文件中。 该文件存在,用户有权写入文件,但我得到一个No such file or directory错误。 $ /usr/bin/docker exec -t $CI_PROJECT_NAME ls -la /opt/application/conf/kubeadminaccount.yml -rw-rw-r– 1 nodeuser nodeuser 420 Aug 18 07:19 /opt/application/conf/kubeadminaccount.yml $ /usr/bin/docker exec -t $CI_PROJECT_NAME whoami nodeuser $ /usr/bin/docker exec -t $CI_PROJECT_NAME echo $KUBE_ADMIN_ACCOUNT > /opt/application/conf/kubeadminaccount.yml bash: line 69: /opt/application/conf/kubeadminaccount.yml: No such file or directory

获取权限拒绝/ bin / sh启动生产中的服务器| 泊坞窗,撰写

我正在生产服务器上运行sudo docker-compose来启动我的Go容器。 我有我的生产服务器sudo访问,但不是根用户。 错误: go_1 | /bin/sh: ./: Permission denied 泊坞窗,compose.yml go: build: context: ./api args: app_env: ${APP_ENV} volumes: – ./api:/go/src/myproject/api expose: – "8080" 去Dockerfile From golang:1.8.3-alpine3.6 RUN apk update && \ apk add \ bash \ build-base \ curl \ make \ git \ && rm -rf /var/cache/apk/* ARG app_env ENV APP_ENV $app_env COPY […]

一个docker使用者可以隐藏另一个数据吗?

Alice和Bob都是同一主机上的docker组的成员。 Alice希望在Docker容器中运行一些长期运行的计算,然后将结果复制到她的主文件夹。 鲍勃很随意,爱丽丝不希望他能够读取她计算所使用的数据。 系统pipe理员可以做些什么来使Bob离开Alice的docker容器? 以下是我认为Alice应该根据命名卷和docker cp命令从她的容器中获取数据的方法,如本问题和本文所述 。 $ pwd /home/alice $ date > input1.txt $ docker volume create sandbox1 sandbox1 $ docker run –name run1 -v sandbox1:/data alpine echo OK OK $ docker cp input1.txt run1:/data/input1.txt $ docker run –rm -v sandbox1:/data alpine sh -c "cp /data/input1.txt /data/output1.txt && date >> /data/output1.txt" $ docker cp […]

Docker:容器内由npm创build的文件权限

我有一个Dockerfile来创build一个开发环境来开发一个sailsJS应用程序。 我只是将我的源代码安装到容器中。 我在我的主机上做了我的Git提交,但是我想在容器中执行所有的npm命令。 我有以下的Dockerfile,我在Ubuntu 14.10中运行Docker(1.4.1): FROM ubuntu:14.04 ### Utils ### RUN apt-get update RUN apt-get -y install build-essential git wget tar vim supervisor ### MongoDB ### RUN apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 7F0CEB10 RUN echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/mongodb.list RUN apt-get update RUN apt-get install -y mongodb-org RUN mkdir -p /data/db ### […]

在Docker容器中“权限被拒绝”,除非–privileged = true

我试图运行一个nginx容器作为服务,并在主机和容器之间共享2个卷,以便一个目录中的文件自动与另一个配对目录共享。 我的docker-compose.yml如下: version: '2' services: nginx: image: nginx build: . ports: – "5000:80" volumes: – /home/user1/share:/share/user1 – /home/user2/share:/share/user2 restart: always 我现在唯一可以做到这一点的方法是通过添加privileged: true对docker-compose文件是privileged: true ,但是由于安全性的要求,我不允许这样做。 当试图访问容器中的卷时,出现以下错误: [root@host docker-nginx]# docker exec -it dockernginx_nginx_1 bash root@2d574f9c6131:/# ls /share/user1/ ls: cannot open directory /share/user1/: Permission denied 即使将自己附加在容器上使用下面的参数禁止我访问资源(或至less列出内容): docker exec -it –privileged=true -u 6004:6004 dockernginx_nginx_1 bash (注意: 6004:6004恰好是传递给/share/user1/的id:gid所有权) 有没有任何方式访问的内容,而不build立与提升特权的nginx service […]

在/ usr / local / bin / docker-compose上允许任何人的可执行权限?

docker-compose上的文档指示为docker-compose上的所有用户添加可执行权限。 就是说,运行: sudo chmod +x /usr/local/bin/docker-compose 生产 -rwxr-xr-x 1 root root 7986086 Nov 24 18:05 /usr/local/bin/docker-compose 不应该限制每个人的可执行权限吗? 附加信息:我从dockeruser运行docker,我添加到docker组。

如何赋予docker容器在映射卷上写入/ chmod权限?

我有一个Synology NAS,它有docker支持,并且想运行一些docker容器(我对Docker相当新颖)。 例如pocketmine-pm(但我相信我也有其他容器的写入问题)。 我在主机上创build了一个卷,并将其映射到容器设置中。 (而在Synologydocker设置的卷映射,我没有点击“只读”)。 根据Dockerfile,在容器中创build一个新的用户'pocketmine',并且该用户用于启动服务器。 用户似乎有用户ID 1000(新的Linux用户的第一个UID)。 容器也使用Entrypoint.sh脚本来启动服务器。 最初容器不能将文件写入映射的目录。 我不得不通过SSH进入主机“chown”UID 1000的目录: sudo chown 1000:1000 /volXy/docker/pocketminemp -R 之后,档案可以被下载和提取。 不幸的是,我无法从我的iOS设备连接到服务器。 服务器被列为“在线”,但连接失败,没有任何特定消息。 然后我检查了容器的日志,看到下面的条目(不知道这是否真的阻止了连接,但我会试试看): [*] Everything done! Run ./start.sh to start PocketMine-MP chown: changing ownership of '/pocketmine/entrypoint.sh': Operation not permitted chown: changing ownership of '/pocketmine/server.properties.original': Operation not permitted Loading pocketmine.yml… 显然容器不能chown它以前能够下载的文件。 有谁知道可以做些什么来解决这个问题? 我是否需要chmod映射卷,为什么我需要将目录切换到UID 1000(主机上不存在的用户) – 是不是有更好的方法来修复权限?

docker安装卷与权限被拒绝

我正在尝试设置一个从主机挂载卷的docker容器。 无论我尝试什么,它总是说远程进入docker集装箱时被拒绝。 这是我尝试添加到我的泊坞窗文件中的一些命令: RUN su -c "setenforce 0" 和 chcon -Rt svirt_sandbox_file_t /app 当我远程进入我的容器时,仍然出现以下错误: 错误:EACCES:权限被拒绝,scandir'/ app'处于错误(本机) 错误:EACCES:权限被拒绝,在错误(本地)时打开“npm-debug.log.578996924” 正如你所看到的,app目录被分配给一些使用uid 1000的用户: 这是我的docker文件: FROM php:5.6-fpm # Install modules RUN apt-get update && apt-get install -y \ git \ unzip \ libmcrypt-dev \ libicu-dev \ mysql-client \ freetds-dev \ libxml2-dev RUN apt-get install -y freetds-dev php5-sybase # This symlink […]

Dockerfile将主机用户UID和GID复制到图像

类似于SO主题关于从主机容器中复制UID / GID,但是如何与具有复制UID和GID的用户构build映像? 最好,你如何做一个docker文件? 我可以用一个bash脚本来做到这一点: #!/bin/bash # current uid and gid curr_uid=`id -u` curr_gid=`id -g` # create bb.dockerfile: cat << EOF1 > bb.dockerfile FROM ubuntu:xenial-20170214 ARG UNAME=testuser EOF1 echo ARG UID=${curr_uid} >> bb.dockerfile echo ARG GID=${curr_gid} >> bb.dockerfile cat << EOF2 >> bb.dockerfile RUN groupadd -g \$GID \$UNAME RUN useradd -m -u \$UID -g \$GID […]