Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ubuntu 启动docker守护进程侦听特定端口的正确方法_Ubuntu_Docker_Port_Bind_Daemon - Fatal编程技术网

Ubuntu 启动docker守护进程侦听特定端口的正确方法

Ubuntu 启动docker守护进程侦听特定端口的正确方法,ubuntu,docker,port,bind,daemon,Ubuntu,Docker,Port,Bind,Daemon,我是docker新手,希望在守护进程模式下启动它,监听特定的IP地址和端口。在中,据说这可以通过编写sudo/usr/bin/docker daemon-h0.0.0:5555来实现。然后它说,我可以使用这个命令docker ps列出正在运行的容器。如果我尝试此操作,会收到以下消息: Get:dial unix/var/run/docker.sock:没有这样的文件或目录 您是否正在尝试连接到没有TLS的启用TLS的守护程序 您的docker守护进程是否已启动并正在运行 我无法与之互动。我一

我是docker新手,希望在守护进程模式下启动它,监听特定的IP地址和端口。在中,据说这可以通过编写
sudo/usr/bin/docker daemon-h0.0.0:5555
来实现。然后它说,我可以使用这个命令
docker ps
列出正在运行的容器。如果我尝试此操作,会收到以下消息:

Get:dial unix/var/run/docker.sock:没有这样的文件或目录

  • 您是否正在尝试连接到没有TLS的启用TLS的守护程序
  • 您的docker守护进程是否已启动并正在运行
我无法与之互动。我一直在寻找解决办法,但运气不好。有什么建议吗

另外,我如何在后台运行这个守护进程?我试着附加一个&但是我被困在输出上,直到按下ctrl+c


提前感谢

在Mac OSX上运行Docker Quickstart终端应用程序,查看:

Machine default already exists in VirtualBox.
Starting machine default...
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.
Setting environment variables for machine default...

现在

应该有用

Linux上,例如Ubuntu可能需要预先设置sudo。 例如

将导致:

Get http:///var/run/docker.sock/v1.20/containers/json: dial unix /var/run/docker.sock: permission denied.
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?
但是

会有用的

要检查docker服务是否正在运行,您可以拨打

 sudo service --status-all 2>&1 | grep docker
它应该表明:

[ - ]  docker
有时您的docker Instruction可能已损坏
请参阅:

我找到了解决问题的方法。我指定docker在IP x和端口y上运行,但docker只侦听该套接字。为了侦听本地请求,我必须在unix套接字中添加另一个-H标志:

sudo /usr/bin/docker daemon -H tcp://0.0.0.0:5555 -H unix:///var/run/docker.sock

由于某种原因,菲尼克斯的解决方案给了我错误。所以我找到了另一种方法-

我编辑了/etc/sysconfig/docker,并更改了选项参数

OPTIONS='--selinux-enabled -H=unix:///var/run/docker.sock -H=0.0.0.0:2375'
然后我重新启动了docker守护进程

systemctl restart docker
在Ubuntu(16.04 LTS)上使用docker ce(
17.03.1~ce-0~ Ubuntu xenial
)执行以下操作,使docker侦听TCP端口而不是套接字

添加包含以下内容的文件
/etc/systemd/system/docker.service.d/override.conf

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd
添加一个包含以下内容的文件
/etc/docker/daemon.json

{
    "hosts": [
        "tcp://127.0.0.1:2375"
    ] 
}
重新加载(
systemctl后台程序重新加载
)并重新启动(
systemctl restart docker.service
)docker

供参考:

编辑:

小心,这样恶魔只会监听网络端口而忽略本地请求。 要使docker同时侦听远程和本地,请编辑daemon.json,但保留标准unix套接字

{
        "hosts" : [
                "unix:///var/run/docker.sock",
                "tcp://<docker-host-ip-or-localhost>:2375"
        ]
}
{
“主持人”:[
"unix:///var/run/docker.sock",
“tcp://:2375”
]
}

Docker daemon connection options(Docker守护程序连接选项)

这个线程非常有用,所以我想介绍一下如何让它在Ubuntu
14.04.1 LTS
上使用Docker
1.12.6-cs13
(可能也适用于Docker ce版本)。
systemd
方法(也就是
/etc/sysconfig/docker
)对于这个Ubuntu版本是不可能的,截至本文撰写之时,docker官方文档没有使用Ubuntu
14.04.1 LTS
upstart
让docker守护程序在网络上监听的安装后指南。我发现以下方法相当有效:

创建
/etc/default/docker
包含内容的文件
DOCKER_OPTS=“-Htcp://MACHINE-IP:2375 -Hunix:///var/run/docker.sock“


重新启动docker服务
sudo服务docker restart
。完成此操作后,docker守护程序开始在网络上侦听,守护程序日志看起来很干净。如果有更好的方法,也许更有经验的docker用户可以加入。

您正在搜索的是“nohup”。请看这里的行为取决于您的操作系统。你用的是什么操作系统?对不起,我忘了提到我用的是Ubuntu14.04I预装版sudo,但这没用。我收到以下消息:
无法连接到Docker守护进程。“docker-d”是否在此主机上运行?
但是,您对
sudo服务--status all 2>&1的建议| grep docker
提供了预期的输出。下面是我安装docker的方式(我通过脚本实现):
sudotouch/etc/apt/sources.list.d/docker.list
sudo-u root bash-c“echo”debhttps://apt.dockerproject.org/repo ubuntu trusty main'>>/etc/apt/sources.list.d/docker.list“
sudo apt key adv--keyserverhkp://pgp.mit.edu:80 --recv key 58118E89F3A912897C070ADBF76221572C52609D
sudo apt get update
sudo apt get-y install docker engine
sudo service docker stop
sudo/usr/bin/docker daemon-H 0.0.0:5555&PS:如何在注释中执行换行操作?
systemctl restart docker
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd
{
    "hosts": [
        "tcp://127.0.0.1:2375"
    ] 
}
{
        "hosts" : [
                "unix:///var/run/docker.sock",
                "tcp://<docker-host-ip-or-localhost>:2375"
        ]
}