如何检测docker守护进程端口

我已经安装了Ubuntu和Docker。 我正在尝试启动Raik容器:

$ DOCKER_RIAK_AUTOMATIC_CLUSTERING=1 DOCKER_RAIK_CLUSTER_SIZE=5 DOCKER_RIAK_BACKEND=leveldb make start-cluster ./bin/start 

并得到错误信息:

它看起来像环境variablesDOCKER_HOST尚未设置。 除非已经正确设置,否则Riak集群无法启动。 例如:

export DOCKER_HOST =“tcp://127.0.0.1:2375”

如果我设置

 export DOCKER_HOST="tcp://127.0.0.1:2375" 

我所有的其他容器停止工作,并说,找不到Docker守护进程。

看起来像我的docker达蒙使用其他塔恩2375端口。 我如何检查它?

默认情况下, unix:///var/run/docker.sock守护进程将使用unix套接字unix:///var/run/docker.sock (您可以通过执行sudo netstat -tunlp来检查是否存在这种情况,并注意没有sudo netstat -tunlp守护进程进程侦听在任何端口上)。 为安全起见,build议保留此设置,但听起来Riak要求守护程序在TCP套接字上运行。

要使用任何人都可以连接的TCP套接字启动docker守护程序,请使用-H选项:

 sudo docker -H 0.0.0.0:2375 -d & 

警告:这意味着可以通过TCP套接字与守护进程交谈的机器可以获得对主机的根访问权限。

相关文档:

http://basho.com/riak-quick-start-with-docker/

https://docs.docker.com/articles/basics/

/etc/systemd/system/docker.service.d/docker.conf创build一个文件

docker.conf里面粘贴下面的内容

 [Service] ExecStart= ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 

请注意,如果没有像docker.service.d和文件docker.conf目录, docker.conf创build它。

保存这个文件后重新加载configurationsystemctl daemon-reload并重新启动systemctl restart docker.service

重启后你可以看到systemctl status docker.service的端口像/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

希望这可能有帮助

谢谢!

两种configurationdocker守护进程的方法

1)在/ etc / default / docker文件中configuration:

 DOCKER_OPTS="-H tcp://127.0.0.1:5000 -H unix:///var/run/docker.sock" 

2)在/etc/docker/daemon.jsonconfiguration:

 { "debug": true, "hosts": ["tcp://127.0.0.1:5000", "unix:///var/run/docker.sock"] } 

如果docker的默认套接字没有configuration,Docker会等待无限的period.ie

 Waiting for /var/run/docker.sock Waiting for /var/run/docker.sock Waiting for /var/run/docker.sock Waiting for /var/run/docker.sock Waiting for /var/run/docker.sock 

注意: 但不要configuration两个configuration文件 ,可能会出现以下错误:

 Waiting for /var/run/docker.sock unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives are specified both as a flag and in the configuration file: hosts: (from flag: [tcp://127.0.0.1:5000 unix:///var/run/docker.sock], from file: tcp://127.0.0.1:5000) 

添加用户端口[tcp://127.0.0.1:5000]默认docker套接字[unix:///var/run/docker.sock]的原因是用户端口允许访问dockerAPI,而默认套接字启用CLI。 如果/ etc / default / docker文件中没有提到默认端口[unix:///var/run/docker.sock],则可能会出现以下错误:

 # docker ps Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 

这个错误不是因为docker没有运行,而是因为默认的docker socket没有启用。

一旦configuration启用重新启动docker服务,并validationdocker端口是否启用:

 # netstat -tunlp | grep -i 5000 tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 31661/dockerd 

适用于Docker版本17.04,可能因Docker的不同版本而异。

试试:-H tcp://0.0.0.0:2375而不是-H 0.0.0.0:2375