我在指定的ip和端口上启动docker,如下所示:
sudo docker -H 192.168.1.164:4243 -d
然后,我可以通过API进行API调用以获取容器列表:
curl -XGET http://192.168.1.164:4243/containers/json?all=1
上面的命令成功返回容器列表。
但是,当我运行docker ps -a
时,我收到以下错误:
Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
我看不出如何在docker ps
命令中设置ip和port。有没有解决的办法?如何在特定的IP和端口启动docker 和仍然使用docker ps
命令列出我的容器?
更新:
我尝试使用-H标志:
docker -H tcp://192.168.1.164:4243 ps
此命令挂起。我认为这是因为-H仅在启动docker并将其绑定到ip和端口时使用。
操作系统:Ubuntu 12.04.4 LTS
感谢。
答案 0 :(得分:2)
未经测试,但docs建议您在客户端命令中使用-H
选项或设置DOCKER_HOST
:
$ docker -H tcp://192.168.1.164:4243 ps
或者:
$ export DOCKER_HOST="tcp://192.168.1.164:4243"
# Then:
$ docker ps
编辑:
我启动了一台新鲜的流浪汉12.04机器,安装了docker,针对默认配置运行了几个样本容器,然后运行:
sudo service docker stop
sudo docker -H 10.0.2.15:4243 -d &
sudo docker -H 10.0.2.15:4243 ps -a
docker ps
的输出(包括背景守护进程):
2014/05/22 22:42:16 GET /v1.11/containers/json?all=1
[92cd0057] +job containers()
[92cd0057] -job containers() = OK (0)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dcd486abb7b4 ubuntu:14.04 ls 2 minutes ago Exited (0) 2 minutes ago furious_kowalevski
d9d31c5e6baa ubuntu:14.04 /bin/bash 2 minutes ago Exited (0) 2 minutes ago backstabbing_yonath
9b77e6035ca2 ubuntu:14.04 /bin/bash 2 minutes ago Exited (0) 2 minutes ago clever_newton
所以,总的来说,它有效。你的环境有什么特别之处,很难说。