Docker:在容器内部使用非root用户执行命令

时间:2014-04-06 09:49:41

标签: docker

我有一个基于Docker注册表的Debian Wheezy图像的自定义docker容器。我想与vagrant(使用docker-provider)一起使用它,所以我创建了一个新用户(vagrant用户),图像保存在我们的存储库中。 在我的本地机器上一切正常,我可以简单地使用它,su vagrant工作得很好。 我的机器是:

Linux ###### 3.13.8-1-ARCH #1 SMP PREEMPT Tue Apr 1 12:19:51 CEST 2014 x86_64 GNU/Linux

某些机器没有任何问题。 但在其他机器上

Linux ###### 3.13.7-1-MANJARO #1 SMP PREEMPT Mon Mar 24 19:44:00 UTC 2014 x86_64 GNU/Linux

Linux ###### 3.8.0-32-generic #47-Ubuntu SMP Tue Oct 1 22:35:23 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

我有这个问题:

docker run -ti example.com:5000/wheezy /bin/bash
root@385af4fd6f17:/# su vagrant
Cannot execute /usr/bin/zsh: Permission denied
root@385af4fd6f17:/# 

在我的机器和其他一些命令上完全相同的命令完全没有问题。 在最后两台有问题的机器上,root用户工作没有任何问题,但是我无法在非root用户上运行任何命令(我在当前会话中创建了另一个新用户并且没有运气)

1 个答案:

答案 0 :(得分:1)

这是因为这个错误:https://github.com/dotcloud/docker/issues/4068

使用devicemapper作为存储驱动程序的计算机没问题,但是aufs存储有这个错误。 将docker存储更改为devicemapper(docker -d -s = devicemapper)或使用git版本(目前0.9.1有此错误)修复此问题。

相关问题