Ubuntu 启动docker守护进程侦听特定端口的正确方法
我是docker新手,希望在守护进程模式下启动它,监听特定的IP地址和端口。在中,据说这可以通过编写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守护进程是否已启动并正在运行 我无法与之互动。我一
sudo/usr/bin/docker daemon-h0.0.0:5555
来实现。然后它说,我可以使用这个命令docker ps
列出正在运行的容器。如果我尝试此操作,会收到以下消息:
Get:dial unix/var/run/docker.sock:没有这样的文件或目录
- 您是否正在尝试连接到没有TLS的启用TLS的守护程序
- 您的docker守护进程是否已启动并正在运行
提前感谢在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
上使用Docker1.12.6-cs13
(可能也适用于Docker ce版本)。systemd
方法(也就是/etc/sysconfig/docker
)对于这个Ubuntu版本是不可能的,截至本文撰写之时,docker官方文档没有使用Ubuntu14.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"
]
}