我正在关注docker文档以测试数据卷的备份过程。
以下两个步骤都可以:
docker create -v /dbdata --name dbdata training/postgres /bin/true
docker run -d --volumes-from dbdata --name db1 training/postgres
但是备份数据的输出为:
[root@localhost data]# docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
tar: /backup/backup.tar: Cannot open: Permission denied
tar: Error is not recoverable: exiting now
[root@localhost data]# pwd
/root/data
[root@localhost data]# ls -alt
total 4
drwxrwxrwx. 2 root root 6 May 7 21:33 .
drwxrwx-w-. 15 root root 4096 May 7 21:33 ..
我以root用户身份工作,为什么会提示“ Permission denied
”?
执行调试命令后:
docker run --name ins --volumes-from dbdata -v $(pwd):/backup ubuntu sleep 99999 &
docker inspect ins
输出为:
[{
"AppArmorProfile": "",
"Args": [
"99999"
],
"Config": {
"AttachStderr": true,
"AttachStdin": false,
"AttachStdout": true,
"Cmd": [
"sleep",
"99999"
],
"CpuShares": 0,
"Cpuset": "",
"Domainname": "",
"Entrypoint": null,
"Env": null,
"ExposedPorts": null,
"Hostname": "83e3e1715648",
"Image": "ubuntu",
"MacAddress": "",
"Memory": 0,
"MemorySwap": 0,
"NetworkDisabled": false,
"OnBuild": null,
"OpenStdin": false,
"PortSpecs": null,
"StdinOnce": false,
"Tty": false,
"User": "",
"Volumes": null,
"WorkingDir": ""
},
"Created": "2015-05-08T01:36:35.564512894Z",
"Driver": "devicemapper",
"ExecDriver": "native-0.2",
"ExecIDs": null,
"HostConfig": {
"Binds": [
"/root/data:/backup"
],
"CapAdd": null,
"CapDrop": null,
"ContainerIDFile": "",
"Devices": [],
"Dns": null,
"DnsSearch": null,
"ExtraHosts": null,
"IpcMode": "",
"Links": null,
"LxcConf": [],
"NetworkMode": "bridge",
"PidMode": "",
"PortBindings": {},
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"RestartPolicy": {
"MaximumRetryCount": 0,
"Name": ""
},
"SecurityOpt": null,
"VolumesFrom": [
"dbdata"
]
},
"HostnamePath": "/var/lib/docker/containers/83e3e171564841460b206a8699c1890e2b910bcd2232fdc7202cbff9210b5362/hostname",
"HostsPath": "/var/lib/docker/containers/83e3e171564841460b206a8699c1890e2b910bcd2232fdc7202cbff9210b5362/hosts",
"Id": "83e3e171564841460b206a8699c1890e2b910bcd2232fdc7202cbff9210b5362",
"Image": "07f8e8c5e66084bef8f848877857537ffe1c47edd01a93af27e7161672ad0e95",
"MountLabel": "system_u:object_r:svirt_sandbox_file_t:s0:c414,c650",
"Name": "/ins",
"NetworkSettings": {
"Bridge": "docker0",
"Gateway": "172.17.42.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.6",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"LinkLocalIPv6Address": "fe80::42:acff:fe11:6",
"LinkLocalIPv6PrefixLen": 64,
"MacAddress": "02:42:ac:11:00:06",
"PortMapping": null,
"Ports": {}
},
"Path": "sleep",
"ProcessLabel": "system_u:system_r:svirt_lxc_net_t:s0:c414,c650",
"ResolvConfPath": "/var/lib/docker/containers/83e3e171564841460b206a8699c1890e2b910bcd2232fdc7202cbff9210b5362/resolv.conf",
"RestartCount": 0,
"State": {
"Error": "",
"ExitCode": 0,
"FinishedAt": "0001-01-01T00:00:00Z",
"OOMKilled": false,
"Paused": false,
"Pid": 3614,
"Restarting": false,
"Running": true,
"StartedAt": "2015-05-08T01:36:36.231389015Z"
},
"Volumes": {
"/backup": "/root/data",
"/dbdata": "/var/lib/docker/vfs/dir/df0378f15f61c8f2e220421968fe181cdcf1a03613218c716c81477dda4bdf76"
},
"VolumesRW": {
"/backup": true,
"/dbdata": true
}
}
]
我也尝试以下命令:
[root@localhost data]# docker run --volumes-from dbdata -v $(pwd):/backup -it ubuntu
root@e59c628417f5:/# ls
backup bin boot dbdata dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@e59c628417f5:/# ls -alt
total 72
......
drwxrwxrwx. 2 root root 6 May 8 01:33 backup
......
root@e59c628417f5:/# ls -alt backup/
ls: cannot open directory backup/: Permission denied
因此,我认为根本原因仍然在于用户权限。
我只是尝试了您列出的命令,它们在OSX平台和简单的Linux平台下都对我有用。问题是您正在将$(pwd)(从主机)安装到/
backup(在ubuntu映像中,上面运行的第三个docker)。
我怀疑当您启动命令时,您是否位于不可写的目录中?我试图让它失败是这样的:
mkdir failme
chmod 000 failme
cd failme
docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
但是,它有效:-)
所以,我进入了一个root不能写的目录:
cd /proc
root@kube:/proc# docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
tar: /backup/backup.tar: Cannot open: Permission denied
tar: Error is not recoverable: exiting now
您是否可能是从无法由root写入的目录开始的?
请将输出发布到以下命令:首先,运行:
docker run --name ins --volumes-from dbdata -v $(pwd):/backup ubuntu sleep 99999 &
(而不是您列出的backup command命令。)
然后进行检查并发布结果:
docker inspect ins
答案是那是由selinux引起的错误。原始海报找到了答案:
setenforce 0
我添加了使用权限,包括WRITE_EXTERNAL_STORAGE,android.permission.相机,READ_EXTERNAL_STORAGEAndroidManifest.xml. 当我在Nexus6(API 24)中运行我的应用程序时,它向我抛出了以下错误: java.io.IOException:权限被拒绝 这是我的代码: 如何在权限相机运行时打开之前使用它?
我正试图按照Firebase的在线指南使用Firebase实时数据库,但由于我的许可被拒绝,我无法获得数据库的任何更新。我不确定我做错了什么。我甚至设定了阅读和写作的规则。 onClickListener内的代码如下: 这是在片段中,按钮在开始片段替换事务之前首先完成这些语句。 以下是Firebase中的规则: 由于我不熟悉JSON,我也尝试过在“.write”结尾加逗号 这是stacktrace
我正在尝试使用 PHP 制作日期日志文件。我正在Macbook上的xampp上运行它。它一直说许可被拒绝。我该如何解决这个问题? 我收到的错误是: 警告: fopen(星期五-01-四月-16.txt): 无法打开流: 权限被拒绝 /Applications/XAMPP/xamppfiles/htdocs/aowigman/index.php 在第 6 行无法打开文件! 代码: 先谢谢!
当我试图在模拟器上运行我的Android应用程序时,我会出现以下错误: /dev/kvm权限被拒绝。 我检查了权限,并将当前登录的用户添加到kvm组。怎么了?
问题内容: 当我尝试运行简单的docker命令时,例如: 我收到一条错误消息: 获得权限被拒绝… /var/run/docker.sock:connect:权限被拒绝 当我检查权限 我看到这一行: 因此,我遵循许多论坛的建议并将本地用户添加到docker组: 但这无济于事。我仍然收到非常相同的错误消息。我该如何解决? 问题答案: 对于那些刚接触shell的人,命令: 需要在您的外壳中定义。默认情况
问题内容: 尝试显示URI时出现以下异常。我认为这是在我的活动停止后发生的,我尝试再次访问可行的URI。还有其他问题可以解决这个问题,但是我对如何对我的代码应用任何解决方案感到非常困惑,因为我的takePhotoIntent允许拍照或从图库中选择图片(如下所示)。 我的createImageFile和我的takePhotoIntent: 问题答案: 根据Storage Access Framewo