我正在通过以下链接进行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
答案 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