如何设置DOCKER_HOST?

时间:2018-08-16 13:25:04

标签: docker docker-compose

我正在通过以下链接进行django-shop教程:https://django-shop.readthedocs.io/en/latest/tutorial/quickstart.html。我在docker,docker-compose和linux中是一个新手。

我收到此错误:

  

错误:无法连接到http://127.0.0.1:2375上的Docker守护程序-是   它正在运行?

     

如果它位于非标准位置,请使用   DOCKER_HOST环境变量。

当我执行这些命令时...

$ git clone --depth 1 github.com/awesto/django-shop 
$ cd django-shop 
$ export DJANGO_SHOP_TUTORIAL=commodity 
$ docker-compose up --build -d

我试图做这个教程,但是没有用。

编辑: 我使用此命令来解决此问题:

$ sudo adduser razvan docker

3 个答案:

答案 0 :(得分:1)

通常,请勿设置DOCKER_HOST

鉴于您的错误消息,它似乎被设置为(错误),并且您可能会发现情况是否会好转

unset DOCKER_HOST

两个显着的例外是基于VM的Docker环境(Docker Toolbox,Docker Machine,Kubernetes的minikube)。在这些情况下,可以使用帮助程序脚本将其设置为正确的值:

eval $(docker-machine env)   # Docker Machine, Docker Toolbox
eval $(minikube docker-env)  # Minikube

答案 1 :(得分:0)

我正在使用Ubuntu 16.04,所以我在/home/user/.profile文件的末尾放置了unset DOCKER_HOST命令。 然后以如下方式获取文件:source /home/user/.profile,然后注销并重新登录,docker现在可以正常工作。

答案 2 :(得分:0)

通过设置DOCKER_HOST,您告诉命令行中的每次docker运行都使用 http api ,而不是默认设置- localhost socket / strong>。

默认情况下 http api 已关闭

$ sudo cat /lib/systemd/system/docker.service | grep ExecStart
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

您可以在 localhos t上的 http api 上为他们添加-H tcp://127.0.0.1:2375 但通常您想通过-H tcp://0.0.0.0:2375 (!!!仅在使用适当的防火墙!!!时才这样做)远程服务器的api上进行培训。

因此您需要在/lib/systemd/system/docker.service中更改为下一行

ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375 --containerd=/run/containerd/containerd.sock