Tag: 文件权限

复制文件后Docker权限问题

我有以下的docker文件 FROM ubuntu:14.04 #Install Node RUN apt-get update -y RUN apt-get upgrade -y RUN apt-get install nodejs -y RUN apt-get install nodejs-legacy -y RUN apt-get install npm -y RUN update-alternatives –install /usr/bin/node node /usr/bin/nodejs 10 # Create app directory RUN mkdir -p /usr/src/app WORKDIR /usr/src/app # COPY distribution COPY dist dist COPY package.json package.json # […]

Crossbar docker image:不允许操作'/node/.crossbar/key.pub'

我只想从我的目录开始运行crossbar,以这种方式连接音量 antonio@debian:~/dev/just-server$ sudo docker run -v ${PWD}:/node -p 8080:8080 -it crossbario/crossbar 但我得到这个错误: 2017-06-28T19:46:25+0000 [Controller 1] Traceback (most recent call last): 2017-06-28T19:46:25+0000 [Controller 1] File "/usr/local/bin/crossbar", line 11, in <module> 2017-06-28T19:46:25+0000 [Controller 1] sys.exit(run()) 2017-06-28T19:46:25+0000 [Controller 1] File "/usr/local/lib/python3.6/site-packages/crossbar/controller/cli.py", line 1109, in run 2017-06-28T19:46:25+0000 [Controller 1] options.func(options, reactor=reactor) 2017-06-28T19:46:25+0000 [Controller 1] File "/usr/local/lib/python3.6/site-packages/crossbar/controller/cli.py", line 665, in […]

Google云(GKE)Kubernetes Docker容器中的文件权限错误

我尝试在我的Docker容器中运行初始化脚本,该容器使用Google Cloud Container Engine(GKE)上的Kubernetes kubectl命令进行部署。 该脚本在我的本地系统上的docker容器中没有错误地执行,但似乎不能在GKE上工作。 我正在使用root帐户在GKE上执行脚本。 Dockerfile环境variables设置为: ENV SUEXECUSERGROUP false shell脚本的path映射到外部持久磁盘。 我已经这样做了,所以我不需要在shell脚本中对任何path进行硬编码: / path-to-shell-script /被映射到〜/父文件夹 docker入口点是: / usr / local / bin / docker-entrypoint.sh shell脚本位于: shell脚本/ path-to-shell-script /fix.sh 加载容器时(初始化)我收到以下错误: ./fix.sh:权限被拒绝 当我从容器内运行ls -lad / path-to-shell-script /时 ,我得到以下输出: drwxr-sr-x 19 apache apache 4096 / path-to-shell-script / ls -la / path-to-shell-script /还显示: … -rwxrwxr-x 1 root root […]

docker cp后的文件所有权

我如何控制哪个用户拥有我从容器中复制的文件? docker cp命令对文件所有权进行了说明: cp命令的行为与Unix cp -a命令的行为相同,即在可能的情况下保留权限,recursion复制该目录。 所有权设置为目标用户和主要组。 例如,复制到容器的文件是使用根用户的UID:GID创build的。 复制到本地机器的文件是使用调用docker cp命令的用户的UID:GID创build的。 但是,如果指定-a选项,则docker cp将所有权设置为源用户和主组。 它说复制到容器的文件是以root用户身份创build的,但这不是我所看到的。 我创build了由用户ID 1005和1006拥有的两个文件。这些所有者被翻译成容器的用户名称空间。 当我将文件复制到容器中时, -a选项似乎没有什么区别。 $ sudo chown 1005:1005 test.txt $ ls -l test.txt -rw-r–r– 1 1005 1005 29 Oct 6 12:43 test.txt $ docker volume create sandbox1 sandbox1 $ docker run –name run1 -vsandbox1:/data alpine echo OK OK $ docker cp test.txt […]

如何解决Filebeat权限在初始化收集日志时被拒绝的错误

我有ELK泊坞窗容器打开端口和Filebeat在单独的容器上。 我在Kibana仪表板中获得了Logstash索引和Filebeat索引。 一些日志正在使用Filebeat中的Logstach发送到Elastic Search。 日志文件夹为我的应用程序,我试图获取在Filebeat容器外运行的日志,它被映射到Filebeat容器内。 所有的容器都在同一个networking上。 但是,当Filebeat来读取我的应用程序日志,我正在获得拒绝错误。 我试图读取单独的Apache日志,但获得相同的错误阅读日志。 我正在使用Oracle Virtual Box在Vagrant主机上执行所有这些操作。 任何人都可以告诉我如何给予权限或添加用户到我的应用程序或任何其他方式来做到这一点? 我正在使用Ubuntu 16.04与Docker和docker-compose并使用ELK 5.6.3。 以下是日志: filebeat_1 | 2017/10/18 09:12:42.390679 prospector_log.go:271: ERR Harvester could not be started on existing file: /na sir/default/logs/kern.log, Err: Error setting up harvester: Harvester setup failed. Unexpected file opening error: Faile d opening /nasir/default/logs/kern.log: open /nasir/default/logs/kern.log: permission denied filebeat_1 | 2017/10/18 […]

Larave5权限问题

我有一个简单的脚本来启动和运行本地/开发机器的docker环境。 在脚本里面我设置了导致问题的项目权限任务: 一个版本的任务: – name: Set permissions shell: > sudo chown -R {{local_user}}:{{wwwdata}} {{project_root}} && sudo chmod ug+w -R {{project_root}} && sudo chgrp -R www-data {{project_root}}/storage {{project_root}}/bootstrap/cache && sudo chmod -R ug+rwx {{project_root}}/storage {{project_root}}/bootstrap/cache 和所有工作正常,直到我们需要存储/更改storage目录中的东西。 ig我们不能logging命令行信息。 另一个版本: – name: Set permissions shell: > sudo chown -R {{local_user}}:{{wwwdata}} {{project_root}} && sudo find {{project_root}} -type f -exec […]

在Docker中启动时,我的应用程序无法创build日志文件

我花了周末的时间翻阅了Docker文档,并玩弄了玩具应用程序和示例项目。 我现在试图写一个我自己的超级简单的Web服务,并从一个容器中运行它。 在容器中,我想要我的应用程序(一个引导下的Spring Boot应用程序) – 称为启动 – 具有以下目录结构: /opt/ bootup/ bin/ bootup.jar ==> the app logs/ bootup.log ==> log file; GETS CREATED BY THE APP @ STARTUP config/ application.yml ==> app config file logback.groovy ==> log config file 需要注意的是,当我在主机上本地运行我的应用程序(Docker之外)时,一切正常,包括将日志文件创build到我的主机的/opt/bootup/logs目录。 应用程序端点提供了正确的内容等。一切都很好,很棒。 所以我创build了下面的Dockerfile : FROM openjdk:8 RUN mkdir /opt/bootup RUN mkdir /opt/bootup/logs RUN mkdir /opt/bootup/config RUN mkdir […]

限制Docker容器的文件访问

假设我在Docker容器中有NodeJS应用程序。 NodeJS可以使用fs模块与主机的文件系统进行交互。 我想要的只是给它访问一个文件夹(例如, / home / user1 / thisfolder ),并拒绝读/写我的主机上的任何其他文件夹或文件。 在Docker中有没有限制这种访问的方法? UPD GOT答案:使用AppArmor我可以给node进程只能访问给定的目录,当它试图访问任何其他 – 它获得permission denied 。

覆盖docker守护进程的默认umask

我试图在主机上的一个容器内装载一个文件夹。 在主机文件夹不存在的情况下,Docker守护进程自动在主机上创build文件夹,并根据默认的umask(即root)来分配权限。 因此,由于权限问题(容器内部的脚本作为非特权用户运行),不能从容器内写入文件夹。 我尝试覆盖在Docker的启动脚本中设置umask分配的权限,但我相信这些被忽略。 有没有什么办法可以覆盖Docker用来实现这个目的的umask?

作为未知用户标识运行的Docker镜像可以删除根文件

它是否正确? 随机用户ID可以删除root拥有的文件? docker run -ti -u 1001 debian:stretch I have no name!@2af53be18a40:/$ rm -f /etc/passwd I have no name!@2af53be18a40:/$ ls /etc/passwd ls: cannot access '/etc/passwd': No such file or directory 我认为这曾经工作(即拒绝许可),虽然我没有尝试过去的确切顺序的命令。 以上结果来自Docker version 1.12.2, build bb80604在Stretch上运行Docker version 1.12.2, build bb80604 。