我正在使用命令
运行dockersudo docker -H 0.0.0.0:2375 -d &
然后我使用teh dockerjava客户端以下列方式创建图像和运行容器
DockerClient dockerClient = DockerClientBuilder.getInstance("http://localhost:2375").build();
l
CreateContainerResponse container = dockerClient.createContainerCmd(image_name)
.exec();
dockerClient.startContainerCmd(container.getId()).exec();
这样可以正常工作,并且docker日志也很好看。但是当我尝试使用包括docker ps, docker images, docker info
在内的任何docker命令时,所有这些命令都会因以下错误而失败
FATA[0000] Get http:///var/run/docker.sock/v1.18/info: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
使用sud也无法解决问题。我在unix上运行docker。有什么想法吗?
答案 0 :(得分:1)
使用sudo也无法解决问题。我在unix上运行docker。有什么想法吗?
你已经启动了Docker侦听TCP套接字。这意味着当docker
客户端尝试连接到默认的Unix域套接字时,那里什么都没有。错误信息非常清楚:
dial unix /var/run/docker.sock: no such file or directory.
您需要告诉docker
客户端要连接的位置,就像您必须将这些信息提供给代码中的DockerClientBuilder
类一样。您可以(a)使用客户端的-H
选项或(b)使用DOCKER_HOST
环境变量来执行此操作。
例如:
$ docker -H http://localhost:2375 ps
$ docker -H http://localhost:2375 pull alpine
或者:
$ export DOCKER_HOST=http://localhost:2375
$ docker ps
$ docker pull alpine