Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在虚拟环境中使用docker命令失败_Docker_Virtualenv - Fatal编程技术网

在虚拟环境中使用docker命令失败

在虚拟环境中使用docker命令失败,docker,virtualenv,Docker,Virtualenv,我正在使用ubuntu xenial安装的docker。然后,我为python项目创建了虚拟环境,但docker命令无法运行。错误是: 正在运行docker info Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/info: dial unix

我正在使用ubuntu xenial安装的docker。然后,我为python项目创建了虚拟环境,但docker命令无法运行。错误是:

正在运行
docker info


Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/info: dial unix /var/run/docker.sock: connect: permission denied
正在运行docker docker build-t dockerhub.domain.com。

ERRO[0000] failed to dial gRPC: cannot connect to the Docker daemon. Is 'docker daemon' running on this host?: dial unix /var/run/docker.sock: connect: permission denied 
context canceled

它不想用sudo运行这些命令,因为我已经将我的用户添加到docker。我可以在虚拟环境之外运行docker命令,但在环境中失败。有什么帮助吗


编辑:

通过以下方式创建venv:

conda create --name myenv
我以这种方式添加了我的用户:

sudo usermod -aG docker ${USER}

id-nG的输出(我的用户是我的用户名)


使用
usermod
命令,仅在您注销并登录时生效(或者使用
source
命令)

然后,
id-nG
打印这些组:(我的用户是我的用户名)


每件事都很好。

使用
usermod
命令,只有在您注销并登录(或者使用
source
命令)时才生效

然后,
id-nG
打印这些组:(我的用户是我的用户名)


每件事都很好。

请分享确切的场景,包括(a)如何创建和输入venv;(b) 证明您可以在venv之外使用Docker而无需
sudo
(因为这可能只是因为您的用户不在
Docker
组中,这不是一个与virtualenv相关的问题)。@DanilaKiver感谢您的提问。我在问题中添加了我的答案作为新的编辑。(b) 还使用
docker info
命令进行测试,并输出我的docker和系统信息,这表明它工作正常。该
id
命令表示您不在
docker
组中。您是否在运行
usermod
后注销并再次登录?@DavidMaze,否。所有命令都在一个会话中运行。@DavidMaze,我认为您解决了问题!现在我再次尝试,发现在组的末尾添加了
docker
组,执行
id-nG
命令。需要注销才能生效。请分享具体场景,包括(a)如何创建和输入您的venv;(b) 证明您可以在venv之外使用Docker而无需
sudo
(因为这可能只是因为您的用户不在
Docker
组中,这不是一个与virtualenv相关的问题)。@DanilaKiver感谢您的提问。我在问题中添加了我的答案作为新的编辑。(b) 还使用
docker info
命令进行测试,并输出我的docker和系统信息,这表明它工作正常。该
id
命令表示您不在
docker
组中。您是否在运行
usermod
后注销并再次登录?@DavidMaze,否。所有命令都在一个会话中运行。@DavidMaze,我认为您解决了问题!现在我再次尝试,发现在组的末尾添加了
docker
组,执行
id-nG
命令。需要注销才能生效。
my_user adm cdrom sudo dip plugdev lpadmin sambashare
my_user adm cdrom sudo dip plugdev lpadmin sambashare docker