对我来说,简单的解决方案是:sudo docker-compose up
更新于2016-3-14:在docker安装过程(或docker-compose?)的某个阶段,建议并提供了一个示例,将您的用户名添加到“docker”组中。这样可以避免在所有docker命令之前都需要使用“sudo”,如下所示:
~ > docker run -it ubuntu /bin/bash
root@665d1ea76b8d:/# date
Mon Mar 14 23:43:36 UTC 2016
root@665d1ea76b8d:/# exit
exit
~ >
仔细查看安装命令的输出(包括docker和docker-compose的第二个安装命令),您将找到必要的步骤。这里也有记录:https://subosito.com/posts/docker-tips/
不用sudo!
每次执行命令时都累了吗?不想再输入sudo docker了吗?是的,有方法可以解决这个问题。尽管自然情况下docker需要root用户,但我们可以为docker操作提供一个等同于root的组。
您可以创建一个名为docker的组,然后将所需的用户添加到该组中。在重新启动docker服务之后,用户将无需每次执行docker操作时都键入sudo。作为root用户,它在Shell命令中是什么样子的?看这里:
> sudo groupadd docker
> sudo gpasswd -a username docker
> sudo service docker restart
完成!
更新于2017-3-9
Linux后安装步骤
本节包含配置Linux主机以更好地与Docker配合使用的可选过程。
以非root用户身份管理Docker
Docker守护进程绑定Unix套接字,而不是TCP端口。默认情况下,该Unix套接字归属于用户root,其他用户只能使用sudo访问它。Docker守护进程始终以root用户身份运行。
如果您不想在使用docker命令时使用sudo,请创建名为docker的Unix组并将用户添加到其中。当Docker守护程序启动时,它会使Unix套接字的所有权可读/写,由docker组拥有。
要创建docker组并添加您的用户:
# 1. Create the docker group.
$ sudo groupadd docker
# 2. Add your user to the docker group.
$ sudo usermod -aG docker $USER
# 3. Log out and log back in so that your group membership is re-evaluated.
# 4. Verify that you can run docker commands without sudo.
$ docker run hello-world
这个命令会下载一个测试图像并在一个容器中运行。当容器运行时,它会打印一条信息性消息然后退出。
docker-machine
是否以 root 用户身份运行?我在 Ubuntu 上遇到了相同的问题,原因是套接字权限不足,使用sudo
命令可以解决。 - SLD