【问题标题】:Communicating with a docker using Unix domain sockets使用 Unix 域套接字与 docker 通信
【发布时间】:2019-01-21 20:09:12
【问题描述】:

我正在尝试从 docker hub 与 Nginx docker 通信,而不使用网络堆栈(仅限 unix 套接字)

我尝试创建自己的套接字: python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/tmp/nginx.sock')"

并使用 -v /tmp/nginx.sock:/tmp/nginx.sock 运行 docker

Got:curl: (7) 无法连接到服务器

我也尝试绑定 dockerd 套接字,但我认为这不是最好的做法。

【问题讨论】:

  • 如果您使用ls -l,那么该路径实际上是在主机端还是在容器端的套接字?还是一个空目录?
  • python 命令在此路径中创建套接字
  • 为什么 nginx 容器会与你挂载到容器中的套接字 /tmp/nginx.sock 通信?
  • 在套接字之后使用 curl 时,您应该指定一个 url,我使用 localhost 这是端口 80 并且 docker 正在侦听端口 80,当这不起作用时,我将 nginx 配置更改为侦听这个unix套接字而不是端口80,但这也不起作用。您建议如何实现所请求的行为?
  • 更正:* docker ia 中的 nginx 在端口 80 上侦听

标签: docker nginx


【解决方案1】:

您是否尝试通过 nginx 守护进程创建此套接字?尝试挂载特定文件夹并将套接字文件的创建留给 nginx 守护进程。

【讨论】:

  • 当运行 "docker ... -v /tmp/nginx.sock:/tmp/nginx.sock" 它只是创建一个文件夹 nginx.sock
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-28
  • 1970-01-01
  • 2014-07-24
  • 1970-01-01
  • 2015-10-15
  • 2019-11-24
  • 1970-01-01
相关资源
最近更新 更多