我按照官方指示在Ubuntu 16.04上安装了docker,并成功运行了注册表作为容器.我想远程连接到另一个容器,所以我尝试:
docker -H tcp://1.2.3.4:2375 exec -it 19f36d1bdfaf /bin/bash
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
连接期间出错:发布 http://1.2.3.4:2375/v1.29/containers/19f36d1bdfaf/exec:拨打tcp 1.2.3.4:2375:connectex:无法建立连接,因为目标计算机主动拒绝连接.
经过几个小时的谷歌搜索没有解决方案我被迫向StackOverflow提出这个问题:为什么我会收到此错误,我该如何解决?
docker.json文件包含以下内容:
{
"hosts": [
"tcp://0.0.0.0:2375",
"npipe://"
]
}
Run Code Online (Sandbox Code Playgroud)
当我查看服务时,看起来守护进程没有像我期望的那样在tcp://0.0.0.0:2375上进行监听(这只是用于测试,一旦我能够实际工作,我将保证这一点):

更新:
通过创建daemon.json文件(docker.json的副本),然后运行:部分工作
sudo dockerd
Run Code Online (Sandbox Code Playgroud)
这个问题是现在客户端不起作用:docker info导致错误:
无法在unix:///var/run/docker.sock连接到Docker守护程序.docker守护程序是否正在运行?
更新和解决方案: Andreas的回答帮助我意识到守护进程没有正常运行.查看本文前面的截图,未使用右-H选项启动docker守护程序.然后我发现这个Github问题解决了这个问题.所以需要的只是:
DOCKER_OPTS="-H tcp://0.0.0.0:2375"请注意,这不是很安全,只是用于测试)[Service]为EnvironmentFile 添加一行:EnvironmentFile=-/etc/default/docker然后更新ExecStart行:ExecStart=/usr/bin/dockerd $DOCKER_OPTS -H fd://sudo service docker restartsystemctl daemon-reload请注意,我没有添加daemon.json文件 - 我离开了现有docker.json文件.
安德烈亚斯的回答帮助我意识到守护进程没有正常运行。查看本文前面的屏幕截图,docker 守护进程没有使用正确的 -H 选项启动。然后我发现这个Github问题解决了这个问题。所以所需要的只是:
DOCKER_OPTS="-H tcp://0.0.0.0:2375"注意这不是很安全,只是为了测试)[Service]编辑 /lib/systemd/system/docker.service 文件,在 EnvironmentFile下添加一行:EnvironmentFile=-/etc/default/docker然后更新 ExecStart 行:ExecStart=/usr/bin/dockerd $DOCKER_OPTS -H fd://sudo service docker restart请注意,我没有添加daemon.json文件——我保留了现有docker.json文件。
| 归档时间: |
|
| 查看次数: |
1511 次 |
| 最近记录: |