简体   繁体   English

无法运行 docker-compose

[英]Unable to run docker-compose

Following this article on Jhipster, I build the project.这篇关于 Jhipster 的文章之后,我构建了这个项目。 I, however, can't run docker-compose.但是,我无法运行 docker-compose。 So, I try to figure out the problem.所以,我试图找出问题所在。 I walk step by step with this Docker-Compose article without luck.我一步一步地完成了这篇 Docker-Compose 文章,但没有走运。

$ sudo service docker status
docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-12-27 15:40:22 PST; 2 days ago
Docs: https://docs.docker.com
Main PID: 1960 (dockerd)
Tasks: 20 (limit: 4440)
Memory: 68.2M
CGroup: /system.slice/docker.service
       ├─1960 /usr/bin/dockerd -H fd://
       └─2093 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --s

Dec 27 15:40:10 tk-PC dockerd[1960]: time="2018-12-27T15:40:10.493340278-08:00" level=warning msg="Your kernel does not support swap memory li
Dec 27 15:40:10 tk-PC dockerd[1960]: time="2018-12-27T15:40:10.493612101-08:00" level=warning msg="Your kernel does not support cgroup rt peri
Dec 27 15:40:10 tk-PC dockerd[1960]: time="2018-12-27T15:40:10.493681034-08:00" level=warning msg="Your kernel does not support cgroup rt runt
Dec 27 15:40:10 tk-PC dockerd[1960]: time="2018-12-27T15:40:10.496381656-08:00" level=info msg="Loading containers: start."
Dec 27 15:40:17 tk-PC dockerd[1960]: time="2018-12-27T15:40:17.498415923-08:00" level=info msg="Default bridge (docker0) is assigned with an I
Dec 27 15:40:19 tk-PC dockerd[1960]: time="2018-12-27T15:40:19.646853084-08:00" level=info msg="Loading containers: done."
Dec 27 15:40:22 tk-PC dockerd[1960]: time="2018-12-27T15:40:22.512083092-08:00" level=info msg="Daemon has completed initialization"
Dec 27 15:40:22 tk-PC dockerd[1960]: time="2018-12-27T15:40:22.512266914-08:00" level=info msg="Docker daemon" commit=89658be graphdriver=aufs
Dec 27 15:40:22 tk-PC dockerd[1960]: time="2018-12-27T15:40:22.553322342-08:00" level=info msg="API listen on /var/run/docker.sock"
Dec 27 15:40:22 tk-PC systemd[1]: Started Docker Application Container Engine.

$ sudo ls -la /var/run/docker.sock
srw-rw---- 1 root docker 0 Dec 27 15:39 /var/run/docker.sock

$ sudo usermod -aG docker ${USER}

$ docker-compose -f docker-compose.yml build --build-arg UID=$(id -u)
ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

The result of the last step is the same as "docker-compose up -d".最后一步的结果与“docker-compose up -d”相同。 According to the article, it would be a permission problem if the problem still exists at this point.根据文章,如果此时问题仍然存在,那就是权限问题。 How can I find what permission issue?我怎样才能找到什么权限问题?

There are multiple ways you can solve this problem.有多种方法可以解决此问题。 Firstly try to export environment variable of docker host with command:首先尝试使用命令导出docker主机的环境变量:

export DOCKER_HOST=/var/run/docker.sock

If it works you can add the same line to your bashrc config to save this export permanently.如果可行,您可以将同一行添加到 bashrc 配置中以永久保存此导出。

If it doesn't work you can try to modify docker daemon config.如果它不起作用,您可以尝试修改 docker daemon 配置。 It located in它位于

/etc/docker/daemon.json

You'll need to append the localhost to your hosts like that:您需要像这样将本地主机附加到您的主机上:

"hosts": ["old_hosts_not_modified_only_append_new_one", "tcp://localhost:2376"],

and restart docker daemon using command:并使用命令重新启动 docker 守护进程:

service docker restart

Hope it gonna help ya希望它会帮助你

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM